الاخ يستخدم ويندوز 7 لاكنه يستخدم الاصدار الكلاسيكي
اخي الكريم لو كنت تقصد تغير الوان MenuItem يمكنك تغير لون الخلفية فقط في خاصية الـ BackColor انما اذا اردت تغير الاستايل نفسة يمكنك ذلك عن طريق الخاصية RenderMode اما اذا اردت تغير لون العنصر اثناء مرور الموس نصحية مني دعك من هذا
ضع هذا الكود داخل المثال الذي أرفقته أنت في المشاركة رقم 6 ...
كود :
Public Class Form1
Private Sub AllSeparators(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles ToolStripMenuItem3.Paint, ToolStripMenuItem2.Paint, ToolStripMenuItem1.Paint
'معرفة الفاصل الذي يتم رسمه حاليا
Dim CurrentToolStripSeparator As ToolStripSeparator = DirectCast(sender, ToolStripSeparator)
'تعبئة الخلفية باللون المطلوب
e.Graphics.FillRectangle(New System.Drawing.SolidBrush(CurrentToolStripSeparator.BackColor), e.ClipRectangle)
'تحديد أبعاد الفاصل
Dim Y As Integer = CInt(e.ClipRectangle.Height / 2)
Dim X1 As Integer = IIf(CurrentToolStripSeparator.RightToLeft = Windows.Forms.RightToLeft.Yes, 0, 30)
Dim X2 As Integer = IIf(CurrentToolStripSeparator.RightToLeft = Windows.Forms.RightToLeft.Yes, e.ClipRectangle.Width - 30, e.ClipRectangle.Width)
'رسم الفاصل
e.Graphics.DrawLine(New Pen(CurrentToolStripSeparator.ForeColor), X1, Y, X2, Y)
End Sub
فيجب أن تضع جميع الأدوات الفاصلة بعد كلمة Handles فلو لاحظت معي الكود لوجدت أنني أضفت الفواصل الثلاث الذي أضفتها أنت في برنامجك، لاحظ النص الملون بالأحمر:
إقتباس :
Private Sub AllSeparators(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles ToolStripMenuItem3.Paint, ToolStripMenuItem2.Paint, ToolStripMenuItem1.Paint
بعد ذلك تقوم بتغيير ألوان الخلفية لكل Separator ولون الخط نفسه من الخصائص أو من الكود بالشكل التالي: