تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] توريث خصائص Label الي Label اخر
#1
السلام عليكم
عندي Label قمت بالتعديل علي خصائصه
واريد انشاء Label جديد بنفس الخصائص والالوان
Dim lbl As New Label
الرد }}}
تم الشكر بواسطة:
#2
PHP كود :
Dim lbl As New YourLabel
lbl
.Parent Me
lbl
.Location = New Point(1010

PHP كود :
Class YourLabel
    Inherits Label

    Sub 
New()
        
Me.BackColor Color.Red
        Me
.AutoSize False
        Me
.Size = New Size(100100)
        
Me.BorderStyle Windows.Forms.BorderStyle.FixedSingle
    End Sub

End 
Class 
الرد }}}
تم الشكر بواسطة: عبد العزيز البسكري
#3
شكرا لسرعة الرد
الـ Label الاصلي موجود علي الفورم
اريد نسخ كل خصائصة الي ليبل جديد
الرد }}}
تم الشكر بواسطة:
#4
PHP كود :
Dim lbl As Control ControlFactory.CloneCtrl(Me.Label1)
lbl.Location = New Point(1010)
lbl.Parent Me 


PHP كود :
Imports System.Windows.Forms
Imports System
.Reflection
Imports System
.Collections
Imports System
.ComponentModel
Imports System
.IO
Imports System
.Runtime.Serialization.Formatters.Binary

#Region "ControlFactory"
 
''' <summary>
 ''' 
Summary description for FormControlFactory.
 
''' </summary>
Public Class ControlFactory
    '
 
   ' TODO: Add constructor logic here
    '
 
   Public Sub New()
 
   End Sub

    Public Shared 
Function CreateControl(ByVal ctrlName As StringByVal partialName As String) As Control
        Try
            Dim ctrl 
As Control
            Select 
Case ctrlName
                Case 
"Label"
 
                   ctrl = New Label()
 
                   Exit Select
                Case 
"TextBox"
 
                   ctrl = New TextBox()
 
                   Exit Select
                Case 
"PictureBox"
 
                   ctrl = New PictureBox()
 
                   Exit Select
                Case 
"ListView"
 
                   ctrl = New ListView()
 
                   Exit Select
                Case 
"ComboBox"
 
                   ctrl = New ComboBox()
 
                   Exit Select
                Case 
"Button"
 
                   ctrl = New Button()
 
                   Exit Select
                Case 
"CheckBox"
 
                   ctrl = New CheckBox()
 
                   Exit Select
                Case 
"MonthCalender"
 
                   ctrl = New MonthCalendar()
 
                   Exit Select
                Case 
"DateTimePicker"
 
                   ctrl = New DateTimePicker()
 
                   Exit Select
                Case 
Else
 
                   Dim controlAsm As Assembly Assembly.Load(partialName)
 
                   Dim controlType As Type controlAsm.[GetType](Convert.ToString(partialName Convert.ToString(".")) & ctrlName)
 
                   ctrl DirectCast(Activator.CreateInstance(controlType), Control)
 
                   Exit Select

            End Select

            Return ctrl
        Catch ex 
As Exception
            System
.Diagnostics.Trace.WriteLine("create control failed:" ex.Message)
 
           Return New Control()
 
       End Try
 
   End Function

 
   Public Shared Sub SetControlProperties(ByVal ctrl As ControlByVal propertyList As Hashtable)
 
       Dim properties As PropertyDescriptorCollection TypeDescriptor.GetProperties(ctrl)

 
       For Each myProperty As PropertyDescriptor In properties
            If propertyList
.Contains(myProperty.NameThen
                Dim obj 
As [Object] = propertyList(myProperty.Name)
 
               Try
                    myProperty
.SetValue(ctrlobj)
 
               Catch ex As Exception
                    
'do nothing, just continue
                    System.Diagnostics.Trace.WriteLine(ex.Message)

                End Try

            End If
        Next

    End Sub

    Public Shared Function CloneCtrl(ByVal ctrl As Control) As Control

        Dim cbCtrl As New CBFormCtrl(ctrl)
        Dim newCtrl As Control = ControlFactory.CreateControl(cbCtrl.CtrlName, cbCtrl.PartialName)

        ControlFactory.SetControlProperties(newCtrl, cbCtrl.PropertyList)

        Return newCtrl
    End Function

    Public Shared Sub CopyCtrl2ClipBoard(ByVal ctrl As Control)
        Dim cbCtrl As New CBFormCtrl(ctrl)
        Dim ido As IDataObject = New DataObject()

        ido.SetData(CBFormCtrl.Format.Name, True, cbCtrl)
        Clipboard.SetDataObject(ido, False)

    End Sub

    Public Shared Function GetCtrlFromClipBoard() As Control
        Dim ctrl As New Control()

        Dim ido As IDataObject = Clipboard.GetDataObject()
        If ido.GetDataPresent(CBFormCtrl.Format.Name) Then
            Dim cbCtrl As CBFormCtrl = TryCast(ido.GetData(CBFormCtrl.Format.Name), CBFormCtrl)

            ctrl = ControlFactory.CreateControl(cbCtrl.CtrlName, cbCtrl.PartialName)

            ControlFactory.SetControlProperties(ctrl, cbCtrl.PropertyList)
        End If
        Return ctrl
    End Function


End Class

#End Region

#Region "Clipboard Support"
 ''' 
<summary>
 
''' Summary description for CBFormCtrl.
 ''' 
</summary>
<
Serializable()> _
Public Class CBFormCtrl
    
'clipboard form control
    Private Shared m_format As DataFormats.Format
    Private m_ctrlName As String
    Private m_partialName As String
    Private m_propertyList As New Hashtable()

    Shared Sub New()
        ' 
Registers a new data format with the windows Clipboard
        m_format 
DataFormats.GetFormat(GetType(CBFormCtrl).FullName)
 
   End Sub

    Public Shared ReadOnly Property Format
() As DataFormats.Format
        Get
            Return m_format
        End Get
    End Property
    Public Property CtrlName
() As String
        Get
            Return m_ctrlName
        End Get
        Set
(ByVal value As String)
 
           m_ctrlName value
        End Set
    End Property

    Public Property PartialName
() As String
        Get
            Return m_partialName
        End Get
        Set
(ByVal value As String)
 
           m_partialName value
        End Set
    End Property

    Public ReadOnly Property PropertyList
() As Hashtable
        Get
            Return m_propertyList
        End Get
    End Property




    Public Sub 
New()
 
   End Sub

    Public Sub 
New(ByVal ctrl As Control)
 
       CtrlName ctrl.[GetType]().Name
        PartialName 
ctrl.[GetType]().[Namespace]

 
       Dim properties As PropertyDescriptorCollection TypeDescriptor.GetProperties(ctrl)

 
       For Each myProperty As PropertyDescriptor In properties
            Try
                If myProperty
.PropertyType.IsSerializable Then
                    m_propertyList
.Add(myProperty.NamemyProperty.GetValue(ctrl))
 
               End If
 
           Catch ex As Exception
                
'do nothing, just continue
                System.Diagnostics.Trace.WriteLine(ex.Message)

            End Try

        Next
    End Sub


End Class
#End Region 
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy , عبد العزيز البسكري
#5
جزاك الله خيرا انا ظنيت هناك دالة او خاصية موجودة لفعل ذلك ههههههههههه
طيب سؤالين مهمين واسف لتعبك معي
الاول : انا بحثت بجوجل كتير ولم اصل حتي لهذه النتيجة : كيف حصلت حدرتك عليها ما نص البحث للوصول لهذه النيجة؟
الثاني : هناك بعض الخصائص لا يتم نسخها او توريثها مثل كل خصائص الـ Border مثل اللون والحجم وذلك كان علي Button ؟
الرد }}}
تم الشكر بواسطة:
#6
PHP كود :
Public Sub ControlCopy(ByVal sourceControlByRef targetControl)
 
   Try
        For Each prop 
As System.Reflection.PropertyInfo In sourceControl.GetType().
 
           GetProperties().Where(Function(xx.CanWrite And Not x.Name.Equals("WindowTarget"))
 
           CallByName(targetControlprop.NameMicrosoft.VisualBasic.CallType.Set,
 
           CallByName(sourceControlprop.NameMicrosoft.VisualBasic.CallType.GetNothing))
 
       Next
    Catch ex 
As Exception
        MsgBox
("Can't copy"MsgBoxStyle.Exclamation)
 
   End Try
End Sub 


PHP كود :
Dim lbl As New Label
ControlCopy
(Me.Label1lbl)
lbl.Location = New Point(1010)
lbl.Parent Me 
الرد }}}
تم الشكر بواسطة: عبد العزيز البسكري


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الحفاظ على خصائص قاعدة البيانات عند النقل strongriseman 0 283 19-11-23, 12:28 PM
آخر رد: strongriseman
  [VB.NET] الطريقة الصحيح لتوسيط label علي ProgressBar الماجيك مسعد 6 1,484 22-01-22, 08:31 PM
آخر رد: ابراهيم ايبو
  سؤال label محمود صالح 2 1,351 12-12-21, 07:14 PM
آخر رد: محمود صالح
  [VB.NET] خصائص اداة DateTimeInput عمرو نجيب 3 2,553 06-07-21, 04:22 PM
آخر رد: naserflaha71
  [VB.NET] ما الأداة الأخف لتصميم أشكال هندسية Button أم Label sniperjawadino 4 1,407 06-12-20, 03:51 PM
آخر رد: Anas Mahmoud
  [VB.NET] اريد اظهار الجمع الموجود في داتا قريد لكل شهر يظهر في label rochdi191 13 3,788 10-11-20, 11:55 PM
آخر رد: rochdi191
  [سؤال] تغير لون Label عند الضغط عليه (على أساس إجابة صحيحة) HUNTER25 8 2,234 07-09-20, 01:56 AM
آخر رد: Hasaneen
  هل يمكن معرفة مكان الجملة او كلمة في richtextbox و وضع فوقها ادات Label al9atl 5 2,248 19-01-20, 01:04 AM
آخر رد: al9atl
  [سؤال] اريد كود يجل ال label متساوي البعد بين الأطراف مع ال label الأخر hichem1 3 2,388 11-06-19, 02:20 AM
آخر رد: سامي محمد
  خصائص الملف معاذ_ابراهيم 2 1,972 03-05-19, 10:58 AM
آخر رد: fouadhdfouad

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم