منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] تعديل خاصية اداة - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] تعديل خاصية اداة (/showthread.php?tid=980)

الصفحات: 1 2


تعديل خاصية اداة - ali.alfoly - 17-11-13

السلام عليكم ورحمة الله
الامر هام وعاجل
اريد التعديل علي الاداة ToolStripMenuItem بحيث عند مرور الموس عليها تاخذ لون معين
وجزاكم الله خيرا


RE: تعديل خاصية اداة - m0075 - 17-11-13

عليكم السلام

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

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

إقتباس : Private Sub Button1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseHover
' Button1.BackColor = Color.Black
End Sub



RE: تعديل خاصية اداة - kslawy - 17-11-13

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 



RE: تعديل خاصية اداة - sooriaty03 - 17-11-13

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

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

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




RE: تعديل خاصية اداة - ali.alfoly - 17-11-13

السلام عليكم ورحمة الله
جزاكم الله خيرا اخواني m0075 و kslawy
لاكن ما اريده هو مافعله الاخ sooriaty03 بالفعل

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

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


RE: تعديل خاصية اداة - ali.alfoly - 19-11-13

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

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

انظر الصورة


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

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



RE: تعديل خاصية اداة - sooriaty03 - 19-11-13

(19-11-13, 11:46 AM)ali.alfoly كتب : السلام عليكم ورحمة الله

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

انظر الصورة


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

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

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

أخي المثال الذي أرفقته سابقا يعمل على جميع الحالات
ويعمل عندي بشكل ممتاز حتى عند اختيار System
فما هي المشكلة؟


RE: تعديل خاصية اداة - ali.alfoly - 19-11-13

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



RE: تعديل خاصية اداة - sooriaty03 - 19-11-13

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

تفضل أخي

كود :
'تعريف حدث الدخول لجميع عناصر القائمة المنبثقة
    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



RE: تعديل خاصية اداة - 3booody - 19-11-13

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

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

اسف اخي سورياتي ما شفت مشاركتك