حسب ما اعلم اذا اردت تعديلها قم بتحديد اللون عن طريق احداث الماوس
مثلا لتعديل لون الزر عن مرور الماوس :
إقتباس : Private Sub Button1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseHover
' Button1.BackColor = Color.Black
End Sub
Private Sub ToolStripMenuItem2_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.MouseHover Me.ToolStripMenuItem2.ForeColor = Color.Red End Sub
Private Sub ToolStripMenuItem2_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.MouseLeave Me.ToolStripMenuItem2.ForeColor = Color.Black End Sub
السلام عليكم ورحمة الله وبركاته
اخي الغالي ابو محمد الي كل يوم جمايله تزيد
الكود انا مش قادر افهمه
لو سمحت تشرحة حتي استطيع التعديل عليه بما يتناسب معي
رجاء شرح كل سطر ولو امكن توضيح بسيط للدوال
كده تبقي اعطيتني المفتاح
وجزاك الله خيرا
'تعريف حدث الدخول لجميع عناصر القائمة المنبثقة
Private Sub ToolStripMenuItems_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles _
ToolStripMenuItem2.MouseEnter, ToolStripMenuItem3.MouseEnter, ToolStripMenuItem4.MouseEnter, ToolStripMenuItem5.MouseEnter
'معرفة العنصر الذي تسبب في إطلاق الحدث
Dim Item As ToolStripItem = DirectCast(sender, ToolStripItem)
'تعريف كائن رسومي لغرض الرسم عليه
Dim Graph As Graphics = ToolStripMenuItem1.DropDown.CreateGraphics
'تعريف مستطيل وتحديد حجمه ليلائم حجم العنصر
Dim Rect1 As New Rectangle(Item.Bounds.X + 3, Item.Bounds.Y + 1, Item.Bounds.Width - 5, Item.Bounds.Height - 2)
'معرفة حجم النص الذي سيتم كتابته فوق المستطيل المرسوم
'سبب هذه الخطوة أن المستطيل سيرسم فوق النص وبالتالي لن يظهر
'النص فنعيد كتابته
Dim TextSize As Size = System.Windows.Forms.TextRenderer.MeasureText(Item.Text, Item.Font)
'تحديد مكان رسم النص
Dim Point1 As New PointF(3 + Math.Floor((Rect1.Width - TextSize.Width) / 2), Rect1.Y + Math.Floor((Rect1.Height - TextSize.Height) / 2) - 0)
'رسم المستطيل
Graph.FillRectangle(Brushes.AliceBlue, Rect1)
'رسم الأيقونة حيث أن المستطيل سيمسحها أيضا
If Item.Image IsNot Nothing Then Graph.DrawImage(Item.Image, CSng(Rect1.Y + Math.Floor((Rect1.Height - TextSize.Height) / 2) - 1), CSng(Rect1.Y + Math.Floor((Rect1.Height - TextSize.Height) / 2) - 1))
'كتابة النص
Graph.DrawString(Item.Text, Item.Font, New SolidBrush(Item.ForeColor), Point1)
19-11-13, 07:02 PM (آخر تعديل لهذه المشاركة : 19-11-13, 07:03 PM {2} بواسطة 3booody.)
السلام عليكم ورحمة الله وبركاته
صراحة لم ارى مشروع استاذي سورياتي لكن كفكرة فأنا جربت هذي لكن تحتاج تعيين محاذاة
قم بتسمية الـــToolStripMenuItem بأسم New ثم ضع هذا الكود كامل
كود :
Private Sub NewToolStripMenuItem1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles NewToolStripMenuItem1.Paint
If NewToolStripMenuItem1.Selected Then
e.Graphics.FillRectangle(Brushes.Cyan, NewToolStripMenuItem1.Bounds)
e.Graphics.DrawRectangle(New Pen(Brushes.Blue, 3), 0, 0, NewToolStripMenuItem1.Width, NewToolStripMenuItem1.Height)
e.Graphics.DrawString(NewToolStripMenuItem1.Text, NewToolStripMenuItem1.Font, New SolidBrush(NewToolStripMenuItem1.ForeColor), 35, 3)
End If
End Sub