بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
صار لي وقت طويل، وانا قاعد اصمم شكل الشاشات التي ستكون عليه في برنامجي ان شاء الله
ووصلت الى عدة تصاميم، منها ذلك التصميم المرفق بالسؤال
سؤالي:
تصميم الشاشات اصبح الى حد ما جميل، ولكن بعيد تمام البعد عن شكل القوائم
كيف لي ان اتحكم بلون وخلفيات القوائم بحيث يصبح البرنامج روح واحدة
والف الف شكر
السلام عليكم ورحمة الله وبركاته
أخي الكريم ما هو إصدار الويندوز لديك ...
السلام عليكم ورحمة الله
بعد اذنك يا اخي ابو محمد
الاخ يستخدم ويندوز 7 لاكنه يستخدم الاصدار الكلاسيكي
اخي الكريم لو كنت تقصد تغير الوان MenuItem يمكنك تغير لون الخلفية فقط في خاصية الـ BackColor انما اذا اردت تغير الاستايل نفسة يمكنك ذلك عن طريق الخاصية RenderMode اما اذا اردت تغير لون العنصر اثناء مرور الموس نصحية مني دعك من هذا
الف شكر
اخي ali
إقتباس :الاخ يستخدم ويندوز 7 لاكنه يستخدم الاصدار الكلاسيكي
فعلا هذا ما استخدمه
تم محاولة تغيير الوان ال MenuItem ، ولكنني لم استطع تغيير لون خلفية اللائحة المنبثقة
كيف يمكن تغيير لون تلك اللائحة المنبثقة
والف شكر
السلامة عليكم
سهلة جدا
غير خلفية جميع الـ ToolStripMenuItem الي اي لون تحب
الف شكر
اخي ali
على اجابتك
تم تغيير لون خلفية كل عنصر من عناصر اللائحة المنبثقة الى اللون الاخضر
ولكن لاحظت وجود مشكلة، في حال كان العنصر عبارة عن خط فاصل بين عناصر اللائحة فلم استطع تغيير لونه، رغم انني وضعت خلفيته لون اخضر
كيف لي ان اجعل القائمة كلها بروح واحدة وبلون واحد، مثلا لون اخضر بما في ذلك الخط الفاصل بين عناصر اللائحة
والف شكر
السلام عليكم ورحمة الله وبركاته
تفضل أخي الكريم
ضع هذا الكود داخل المثال الذي أرفقته أنت في المشاركة رقم 6 ...
كود :
Public Class Form1
Private Sub AllSeparators(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles ToolStripMenuItem3.Paint, ToolStripMenuItem2.Paint, ToolStripMenuItem1.Paint
'معرفة الفاصل الذي يتم رسمه حاليا
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
End Class
بالتوفيق
االف شكر
اخي Sooriaty على اجابتك
ومبروك عليك وسام التميز
اخي الكريم، وضعت الكود في مثالي كما اشرت، وفعلا المنسدلة اصبحت متناسقة
ولكن عندما بدأت بالشروع بعمل لوائح جانبية او منسدلة اخرى، لاحظت ان الكود لم يطبق على الحد الفاصل وبقي التشوه قائم
حاولت مراجعة الكود الذي تفضلت به، ولكن لم اجد به، ما يشير الى انه مرتبط مع المنسدلة الاولى
ارجو الاطلاع على المثال المرفق وكذلك على الصور
والتصويب
بارك الله فيك
السلام عليكم ورحمة الله وبركاته
الله يبارك فيك أخي الكريم
بالنسبة إلى الكود
فيجب أن تضع جميع الأدوات الفاصلة بعد كلمة Handles فلو لاحظت معي الكود لوجدت أنني أضفت الفواصل الثلاث الذي أضفتها أنت في برنامجك، لاحظ النص الملون بالأحمر:
إقتباس :Private Sub AllSeparators(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles ToolStripMenuItem3.Paint, ToolStripMenuItem2.Paint, ToolStripMenuItem1.Paint
بعد ذلك تقوم بتغيير ألوان الخلفية لكل Separator ولون الخط نفسه من الخصائص أو من الكود بالشكل التالي:
كود :
ToolStripMenuItem3.BackColor = Color.FromArgb(192, 255, 192)
ToolStripMenuItem3.ForeColor = Color.Red
بالتوفيق