(29-04-16, 11:17 AM)honest كتب : السلام عليكم مرحبا شباب كيف حالكم
هذا مثال لإختيار ولتغيير الثيم وقت تشغيل البرنامج كخيارات الاؤبشن مثلا
الثال في المرفقات
عيب هذا المثال انه في الكود عليك كتابة اسماء كل الادوات في كل الفورمات ليتغير ثيمها
ربما نجد حل عند الخبراء
هذا المرفق
بارك الله فيك
لإصلاح "العيب" استبدل كود الفورم 2 بهذا الكود
كود :
Imports SimpleTheme.ThirteenButton
Public Class Form2
' رد على موضوع
' مثال تغيير ثيم البرنامج وقت التشغيل
' http://vb4arb.com/vb/showthread.php?tid=15626
' إضافة إمكانية تغيير الثيم لكل الأدوات في فورم معين
' بدلا من كتابة اسم كل اداة لوحدها كما كانت في السابق
Private Sub SetColorScheme(form As Form, Skin As ColorSchemes)
For Each MyControl As Control In form.Controls
If (MyControl.GetType() Is GetType(ThirteenForm)) Then
Dim MyCustomForm As ThirteenForm = CType(MyControl, ThirteenForm)
MyCustomForm.ColorScheme = Skin
For Each ctrl As Control In MyCustomForm.Controls
If (ctrl.GetType() Is GetType(ThirteenButton)) Then
Dim MyCustomControl As ThirteenButton = CType(ctrl, ThirteenButton)
MyCustomControl.ColorScheme = Skin
ElseIf (ctrl.GetType() Is GetType(ThirteenCheckBox)) Then
Dim MyCustomControl As ThirteenCheckBox = CType(ctrl, ThirteenCheckBox)
MyCustomControl.ColorScheme = Skin
ElseIf (ctrl.GetType() Is GetType(ThirteenComboBox)) Then
Dim MyCustomControl As ThirteenComboBox = CType(ctrl, ThirteenComboBox)
MyCustomControl.ColorScheme = Skin
ElseIf (ctrl.GetType() Is GetType(ThirteenControlBox)) Then
Dim MyCustomControl As ThirteenControlBox = CType(ctrl, ThirteenControlBox)
MyCustomControl.ColorScheme = Skin
ElseIf (ctrl.GetType() Is GetType(ThirteenRadioButton)) Then
Dim MyCustomControl As ThirteenRadioButton = CType(ctrl, ThirteenRadioButton)
MyCustomControl.ColorScheme = Skin
ElseIf (ctrl.GetType() Is GetType(ThirteenTabControl)) Then
Dim MyCustomControl As ThirteenTabControl = CType(ctrl, ThirteenTabControl)
MyCustomControl.ColorScheme = Skin
ElseIf (ctrl.GetType() Is GetType(ThirteenTextBox)) Then
Dim MyCustomControl As ThirteenTextBox = CType(ctrl, ThirteenTextBox)
MyCustomControl.ColorScheme = Skin
End If
Next
End If
Next
End Sub
Private Sub ThirteenButton1_Click(sender As Object, e As EventArgs) Handles ThirteenButton1.Click
If ThirteenComboBox1.Text = "Dark" Then
SetColorScheme(Form1, ColorSchemes.Dark)
SetColorScheme(Me, ColorSchemes.Dark)
Else : ThirteenComboBox1.Text = "Light"
SetColorScheme(Form1, ColorSchemes.Light)
SetColorScheme(Me, ColorSchemes.Light)
End If
End Sub
End Class