تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] تعديل خاصية اداة
#1
السلام عليكم ورحمة الله
الامر هام وعاجل
اريد التعديل علي الاداة ToolStripMenuItem بحيث عند مرور الموس عليها تاخذ لون معين
وجزاكم الله خيرا
الرد }}}
تم الشكر بواسطة:
#2
عليكم السلام

حسب ما اعلم اذا اردت تعديلها قم بتحديد اللون عن طريق احداث الماوس

مثلا لتعديل لون الزر عن مرور الماوس :

إقتباس : Private Sub Button1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseHover
' Button1.BackColor = Color.Black
End Sub
الرد }}}
تم الشكر بواسطة: sooriaty03
#3
PHP كود :
Private Sub ToolStripMenuItem2_MouseHover(ByVal sender As ObjectByVal e As System.EventArgsHandles ToolStripMenuItem2.MouseHover
        Me
.ToolStripMenuItem2.ForeColor Color.Red
    End Sub

    
Private Sub ToolStripMenuItem2_MouseLeave(ByVal sender As ObjectByVal e As System.EventArgsHandles ToolStripMenuItem2.MouseLeave
        Me
.ToolStripMenuItem2.ForeColor Color.Black
    End Sub 
(وَقُل رَّبِّ زِدْنِي عِلْمًا)

الرد }}}
تم الشكر بواسطة: sooriaty03
#4
السلام عليكم ورحمة الله وبركاته

بعد عدة محاولات توصلت إلى هذه النتيجة

عدلها لتتناسب مع برنامجك



الملفات المرفقة
.zip   ColoredToolStripMenuItem.zip (الحجم : 46.78 ك ب / التحميلات : 129)
الرد }}}
تم الشكر بواسطة:
#5
السلام عليكم ورحمة الله
جزاكم الله خيرا اخواني m0075 و kslawy
لاكن ما اريده هو مافعله الاخ sooriaty03 بالفعل

رجاء اخي sooriaty03 اربد التعديل علي الكود لا اريد تغير النص او تحريكه اثناء مرور الموس اريد فقط تغير لون الخلفية
واريد توضيح اين كود تغير اللون

وجزاك الله خيرا
الرد }}}
تم الشكر بواسطة:
#6
السلام عليكم ورحمة الله

اخواني الخاصية RenderMode تساوي System اريد اغير اللون الازرق

انظر الصورة


انا عارف تعبتك معي ابو محمد

جزاك الله خيرا
الرد }}}
تم الشكر بواسطة:
#7
(19-11-13, 11:46 AM)ali.alfoly كتب : السلام عليكم ورحمة الله

اخواني الخاصية RenderMode تساوي System اريد اغير اللون الازرق

انظر الصورة


انا عارف تعبتك معي ابو محمد

جزاك الله خيرا

السلام عليكم ورحمة الله وبركاته

أخي المثال الذي أرفقته سابقا يعمل على جميع الحالات
ويعمل عندي بشكل ممتاز حتى عند اختيار System
فما هي المشكلة؟
الرد }}}
تم الشكر بواسطة:
#8
السلام عليكم ورحمة الله وبركاته
اخي الغالي ابو محمد الي كل يوم جمايله تزيد
الكود انا مش قادر افهمه
لو سمحت تشرحة حتي استطيع التعديل عليه بما يتناسب معي
رجاء شرح كل سطر ولو امكن توضيح بسيط للدوال
كده تبقي اعطيتني المفتاح
وجزاك الله خيرا
الرد }}}
تم الشكر بواسطة:
#9
السلام عليكم ورحمة الله وبركاته

تفضل أخي

كود :
'تعريف حدث الدخول لجميع عناصر القائمة المنبثقة
    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
الرد }}}
تم الشكر بواسطة: 3booody , الشاكي لله
#10
السلام عليكم ورحمة الله وبركاته

صراحة لم ارى مشروع استاذي سورياتي لكن كفكرة فأنا جربت هذي لكن تحتاج تعيين محاذاة
قم بتسمية الـــ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

اسف اخي سورياتي ما شفت مشاركتك
الرد }}}
تم الشكر بواسطة: sooriaty03



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم