11-12-13, 04:14 AM
السلام عليكم ورحمة الله وبركاته
تفضل أخي تم تعديل الكود
بالتوفيق
تفضل أخي تم تعديل الكود
كود :
Private Sub AllSeparators(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)
'معرفة الفاصل الذي يتم رسمه حاليا
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
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
For Each Item As ToolStripMenuItem In MenuStrip1.Items
If Item.HasDropDownItems Then
SetColors(Item.DropDownItems)
End If
Next
End Sub
Private Sub SetColors(ByVal Items As ToolStripItemCollection)
Try
For Each Item In Items
Item.BackColor = System.Drawing.ColorTranslator.FromHtml("#C0FFC0")
Item.ForeColor = Color.Black
If TypeOf Item Is ToolStripSeparator Then
AddHandler DirectCast(Item, ToolStripSeparator).Paint, AddressOf AllSeparators
Else
If Item.HasDropDownItems Then
SetColors(Item.DropDownItems)
End If
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Subبالتوفيق

