05-10-12, 01:20 PM
[TABLE="width: 100%"]
[TR]
[TD="class: alt2"]مراقبنا العزيز سيلفر أعجبني موضوعك لكن تمنيت
أن يكون الطرح أفضل لأنك لما تطرح فكرة صغيرة ويستوعبها الجميع ويبدأو بطرح
أفكار تطورها أفضل من شرح كتاب كامل ويالله من يفهم[/TD]
[/TR]
[/TABLE]
الأخ الفاضل vb_net
دعني أوضح لك الهدف من الموضوع
فكرة المقال مبنية علي تحويل أي Enum الي مجموعة من Items وهذه Items عبارة عن String ومن ثم نضيف كل String موجود داخل Enum إلي كومبوبوكس كونترول أو أي كونترول أخر يقبل النوع Items وبعد إضافة هذه Items نحتاج الي الحصول علي قيمتها الأصلية داخل Enum ولذلك نحتاج الي تحويلها من String To Enum مرة ثانية ثم أخر شئ نستفيد بها بشكل ما
ولتطبيق الفكرة راجع المثال الموجود بالمرفقات وهو بنسخة الفيجوال 2010 وإن لم تكن تمتلك نسخة 2010 يمكنك كتابة الكود الخاص بالمثال كالتالي:
ولتطبيق الكود : أضف إلي الفورم كومبوبوكس و Panel وداخل هذه Panel أضف باتون
والكود ببساطة يستخدم الخاصة Dock في تغيير وضعية الباتون داخل Panel وذلك عندما يتم إختيار اي عنصر موجود في الكومبوبوكس
كود :
Public Class Form1
Private styledock As DockStyle = DockStyle.None
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Fill ComboBox1 with HatchStyle Enum
For Each dockStyleObject As Object In [Enum].GetValues(GetType(DockStyle))
If Not ComboBox1.Items.Contains(dockStyleObject) Then ComboBox1.Items.Add(dockStyleObject)
Next
End Sub
Private Function StringToEnum(Of T)(ByVal value As String, ByVal ignoreCase As Boolean) As T
If [Enum].IsDefined(GetType(T), value) Then
Return CType([Enum].Parse(GetType(T), value, ignoreCase), T)
End If
Throw New ArgumentException("value is not Enum")
End Function
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
styledock = StringToEnum(Of DockStyle)(Me.ComboBox1.SelectedItem.ToString, True)
Me.Button1.Dock = styledock
End Sub
End Classأخوك عمر
