السلام عليكم ورحمة الله
الامر هام وعاجل
اريد التعديل علي الاداة ToolStripMenuItem بحيث عند مرور الموس عليها تاخذ لون معين
وجزاكم الله خيرا
عليكم السلام
حسب ما اعلم اذا اردت تعديلها قم بتحديد اللون عن طريق احداث الماوس
مثلا لتعديل لون الزر عن مرور الماوس :
إقتباس : Private Sub Button1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseHover
' Button1.BackColor = Color.Black
End Sub
PHP كود :
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
السلام عليكم ورحمة الله وبركاته
بعد عدة محاولات توصلت إلى هذه النتيجة
عدلها لتتناسب مع برنامجك
السلام عليكم ورحمة الله
جزاكم الله خيرا اخواني m0075 و kslawy
لاكن ما اريده هو مافعله الاخ sooriaty03 بالفعل
رجاء اخي sooriaty03 اربد التعديل علي الكود لا اريد تغير النص او تحريكه اثناء مرور الموس اريد فقط تغير لون الخلفية
واريد توضيح اين كود تغير اللون
وجزاك الله خيرا
السلام عليكم ورحمة الله
اخواني الخاصية RenderMode تساوي System اريد اغير اللون الازرق
انظر الصورة
انا عارف تعبتك معي ابو محمد
جزاك الله خيرا
(19-11-13, 11:46 AM)ali.alfoly كتب : [ -> ]السلام عليكم ورحمة الله
اخواني الخاصية RenderMode تساوي System اريد اغير اللون الازرق
انظر الصورة
انا عارف تعبتك معي ابو محمد
جزاك الله خيرا
السلام عليكم ورحمة الله وبركاته
أخي المثال الذي أرفقته سابقا يعمل على جميع الحالات
ويعمل عندي بشكل ممتاز حتى عند اختيار System
فما هي المشكلة؟
السلام عليكم ورحمة الله وبركاته
اخي الغالي ابو محمد الي كل يوم جمايله تزيد
الكود انا مش قادر افهمه
لو سمحت تشرحة حتي استطيع التعديل عليه بما يتناسب معي
رجاء شرح كل سطر ولو امكن توضيح بسيط للدوال
كده تبقي اعطيتني المفتاح
وجزاك الله خيرا
السلام عليكم ورحمة الله وبركاته
تفضل أخي
كود :
'تعريف حدث الدخول لجميع عناصر القائمة المنبثقة
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)
End Sub
السلام عليكم ورحمة الله وبركاته
صراحة لم ارى مشروع استاذي سورياتي لكن كفكرة فأنا جربت هذي لكن تحتاج تعيين محاذاة
قم بتسمية الـــ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
اسف اخي سورياتي ما شفت مشاركتك