استخدم هذا الكود لتغيير مجموعة ازرار من BTNRG1 الى BTNRG11
Public Sub ColorSelectRG(ByVal colorr As Integer, ByVal colorg As Integer, ByVal colorb As Integer)
Try
Dim numColor As Integer = 28
For i As Integer = 1 To 11
Dim btn As Button = CType(Me.Controls("BTNRG" & i.ToString()), Button)
If btn IsNot Nothing Then
btn.BackColor = Color.FromArgb(colorr, colorg, colorb)
colorg += numColor
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
المشكلة لا تتغير الالوان بالشكل المطلوب ولا يظهر خطا ولكن قبل استخدام IF في الكود كان يظهر خطا لم اعرف سببة
للتحكم بمجموعة عناصر قم بإستخدام
For Each...Next : Statement
المنتدى مليء بالكثير من الامثلة
ابحث وستجد أكثر مما ترغب به..
فقط عدل الكود لما يناسب مشروعك..
بحث مالقيت

كتبته بس نفس المشكلة ما يصير شي
1-
Private Sub COLORSELECTRG(ByRef COLORR As Integer, ByRef COLORG As Integer, ByRef COLORB As Integer)
Dim NUMCOLOR As Integer = 28
Dim I As Integer = 1
For Each btn As Button In Me.Controls.OfType(Of Button)().Where(Function© c.Name.StartsWith("BTNRG"))
Dim NUMBTN As Integer = I
NUMCOLOR += 28
btn.BackColor = Color.FromArgb(COLORR, COLORG, COLORB)
COLORG += NUMCOLOR
I += 1
Next
End Sub
2-
Private Sub COLORSELECTRG(ByRef COLORR As Integer, ByRef COLORG As Integer, ByRef COLORB As Integer)
Dim NUMCOLOR As Integer = 28
Dim I As Integer = 1
For Each ctrl As Control In Me.Controls
If TypeOf ctrl Is Button AndAlso ctrl.Name.StartsWith("BTNRG") Then
Dim btn As Button = DirectCast(ctrl, Button)
Dim NUMBTN As Integer = I
NUMCOLOR += 28
btn.BackColor = Color.FromArgb(COLORR, COLORG, COLORB)
COLORG += NUMCOLOR
I += 1
End If
Next
End Sub
لو كل الأزرار التي تريد تلوينها فيها شيء مشترك غير موجود في غيرها ..
مثلاً كلها تحتوي في تسميتها (خاصية (
Name)) الكلمة ("
BTNRG")
فيصبح الكود المسؤول عن تلوين الأزار :
كود :
Dim xBt = From bt In Controls.OfType(Of ButtonBase)()
Where bt.Name.Contains("BTNRG")
Select bt
For Each b1 In xBt
b1.BackColor = Color.FromArgb(255, 200, 200, 20)
Next
ملاحظة1 : هذا الكود حساس لحالة الأحرف، فإن تغير شكل الحرف (من كبير لصغير أو العكس) توقف عن العمل..
فيفضل حينها استخدام خاصية شكل الحرف الموحد بإستخدام خاصية (ToUpper) أو (ToLower)..
ملاحظة 2 : هنالك أكواد أفضل من هذا بكثير وفيها إبداع ملحوظ،، ولكن تحتاج أن تبحث ضمن المنتدى وتجرب بنفسك ..