نشأ هذا مثال من استعلام في هذه المادة .
وColorDialog السيطرة ويعرض لوحة الألوان التقليدية، ولكن الحقيقة هي أن برنامج Visual Studio هو أجمل بكثير ويظهر كل الألوان حسب الاسم كما هو محدد في خصائص الكائن System.Drawing.
نظرا لمشكلة عدم وجود مراقبة لتبين لنا هذه القائمة من الألوان ونحن نرى كيف يمكننا constriur 1 أنفسنا.
على سبيل المثال نحن في حاجة إلى مشروع جديد وشكلي.
في النموذج الأول هراوة فقط لاستدعاء نموذج 2، كما هو موضح في الشكل التالي:

زر ورمز على النحو التالي:
BtnColor_Click خاصة الفرعية (المرسل الأساسية ByVal البريد الالكتروني System.Object الأساسية ByVal، كما System.EventArgs) مقابض btnColor.Click كما جديد vForm2 خافت Form2 vForm2.ShowDialog () نهاية الفرعية
وسيكون في هذا الشكل ن botoes مربع القائمة واثنين من (قبول وإلغاء) كما في الشكل التالي:

في الحدث Load للنموذج إنشاء بعض الخصائص من ListBox وتحمل أسماء الألوان مع التعليمات البرمجية التالية:
Form2_Load خاصة الفرعية (المرسل الأساسية ByVal البريد الالكتروني System.Object الأساسية ByVal، كما System.EventArgs) يعالج MyBase.Load ListBox1.DrawMode = DrawMode.OwnerDrawFixed ListBox1.ItemHeight = 20 ListBox1.Items.Clear () ListBox1.BeginUpdate () عن كل متعصب وReflection.PropertyInfo في GetType (ألوان). GetProperties (أو Reflection.BindingFlags.Public Reflection.BindingFlags.Static) ListBox1.Items.Add (pi.Name) التالي ListBox1.EndUpdate () نهاية الفرعية
في السطر الأول من "تحميل = ListBox1.DrawMode DrawMode.OwnerDrawFixed" تثبت أن يتم رسم كافة عناصر التحكم يدويا ولها نفس الارتفاع. هذا ademças، DrawItem حدث يتسبب في المعرض قبل كل بند.
لتعيين الحدث DrawItem من مربع القائمة، حدد (في طريقة عرض التصميم) في ListBox1، ونحن اضغط F4 لعرض خصائص، والجزء العلوي من مربع خصائص حدد صاعقة لرؤية الحالة التي تكون فيها السيطرة متاح ، ونحن DrawItem ونحن نقرا مزدوجا فوق. الصورة التالية توضح كيفية القيام بذلك:

وهذا هو رمز من الحدث DrawItem
ListBox1_DrawItem خاصة الفرعية (المرسل الأساسية ByVal بواسطة البريد الالكتروني، وجوه الأساسية ByVal كما System.Windows.Forms.DrawItemEventArgs) مقابض ListBox1.DrawItem خافت المستطيل كما e.Bounds = مستطيل إذا كان (e.State وDrawItemState.Selected) ثم e.Graphics.FillRectangle (SystemBrushes.Highlight، مستطيل) آخر e.Graphics.FillRectangle (Brushes.White، مستطيل) نهاية إذا خافت وListBox1.Items سلسلة nombreColor = (e.Index) ب قاتمة كما SolidBrush جديد (Color.FromName (nombreColor)) rectangulo.Inflate (-16، -2) e.Graphics.FillRectangle (ب، جديد مستطيل (rectangulo.X، rectangulo.Y، 30 عاما، rectangulo.Height)) e.Graphics.DrawRectangle (Pens.Black، جديد مستطيل (rectangulo.X، rectangulo.Y، 30 عاما، rectangulo.Height)) إذا كان (e.State وDrawItemState.Selected) ثم e.Graphics.DrawString (nombreColor، e.Font، Brushes.White، rectangulo.X + 34، rectangulo.Y + 2) آخر e.Graphics.DrawString (nombreColor، e.Font، Brushes.Black، rectangulo.X + 34، rectangulo.Y + 2) نهاية إذا نهاية الفرعية
الآن نحن فقط بحاجة لبرنامج الأزرار eventosde كما هو مبين في التعليمات البرمجية التالية:
BtnAceptar_Click خاصة الفرعية (المرسل الأساسية ByVal البريد الالكتروني System.Object الأساسية ByVal، كما System.EventArgs) مقابض btnAceptar.Click My.Forms.Form1.BackColor = Color.FromName (ListBox1.SelectedItem) نهاية الفرعية BtnCancelar_Click خاصة الفرعية (المرسل الأساسية ByVal البريد الالكتروني System.Object الأساسية ByVal، كما System.EventArgs) مقابض btnCancelar.Click Me.Close () نهاية الفرعية
حسنا، لاختبار التطبيق ... إذا سار كل شيء بشكل جيد، يبدو مثل هذا:

أترك بعض التعاريف:
Graphics.FillRectangle (الطريقة): التعبئة الداخلية من مستطيل المحدد من قبل الزوج تنسيق والعرض والارتفاع 1 1.
Graphics.DrawRectangle (الطريقة): رسم مستطيل المحدد من قبل الزوج تنسيق والعرض والارتفاع 1 1.
Graphics.DrawString (الطريقة): رسم سلسلة النص المحدد في الموقع المحدد ومع فرشاة المحدد والكائنات الخط.
ويساعد هذا الأمل، والتي يمكنك استخدامها في المشاريع الخاصة بك.
معلومات Bitacoras.com ...
معدل في Bitacoras.com: هذا المثال نشأت من استعلام في هذه المقالة. وColorDialog سيطرة tresenta لنا لوحة الألوان التقليدية، ولكن من ترو ه أن من Visual Studio هو أجمل بكثير ويظهر كل الألوان لن لكم .....
مثال جيد جدا، وشكرا لكم.
عظيم!
ومن تقدير كبير!
! جيدة جدا!
وكان الشيء الوحيد الذي كنت أعمل على زر إلغاء الأمر.
هاها، لقد نسيت، ولكن رمز بسيط جدا: Me.Close
فشل لتحديد لون شفاف، سيكون من؟ ........... الألوان الأخرى ما اذا كان يعمل
salu2
غير أنه لا لون شفاف تطبيقها مع لون الخلفية لنموذج، ولكن إذا ما طبق على عناصر التحكم الأخرى.
شكرا على التعليق!
انقذ حياتي هذا المثال! ... ولكن كما قلت انظر الى الحصول على الشاشة في prpiedades التي تقوم بتغيير لون؟ لأنه يتيح لي رؤية "My.Forms.Form1.BackColor". تشكر salu2
مرحبا
أحصل على معرف خطأ متوقع تماما. <واذا كان (e.State وDrawItemState. اختر ED) ثم
e.Graphics.FillRectangle (SystemBrushes.Highlight، مستطيل)
ساعدني من خلال كرة القدم
Graciass
تحياتي ...
أنا أبحث عن تقنيات لتقديم أجمل تصميم من الضوابط التي يجب أن تكون مثل المطار ولكن ليس لدي أي فكرة ولا أتمكن من العثور على شيء من فضلك اذا كنت قد يساعدني في ذلك من anetmano شكرا جزيلا ...
هذا فيرا، وشكرا جزيلا على هذا المثال. وسوف أكون قادرا على تطبيقه على احتياجاتي
شكرا من ميريدا، يوكاتان