Dan l-eżempju qamet minn mistoqsija fil f'dan l-artikolu .
Il ColorDialog kontroll jippreżenta paletta kulur tradizzjonali, iżda l-verità hija li studio viżwali huwa ferm nicer u juri l-kuluri b'isimhom kif definiti fil-proprjetajiet oġġett System.Drawing.
Minħabba l-problema li m'hemmx kontroll biex juruna din il-lista ta 'kuluri naraw kif nistgħu constriur 1 nfusna.
Per eżempju għandna bżonn ta 'proġett ġdid u żewġ forom.
Fl-ewwel forma Baton biss għandhom jitolbu l-Formola 2, kif muri fil-figura li ġejja:

buttuna u l-kodiċi huwa kif ġej:
BtnColor_Click Privat Sostitut (mittent ByVal Fir System.Object, ByVal e Bħala System.EventArgs) Mankijiet btnColor.Click Kif New vForm2 DIM Form2 vForm2.ShowDialog () Tmiem Sub
u f'din il-forma se n botoes listbox u tnejn (taċċetta u tikkanċella) bħal fil-forma li ġejja:

F'dan il-każ Tagħbija-forma ta jistabbilixxi xi proprjetajiet tal-listbox u jġorru l-ismijiet tal-kuluri mar-kodiċi li ġej:
Form2_Load Privat Sostitut (mittent ByVal Fir System.Object, ByVal e Bħala System.EventArgs) Mankijiet MyBase.Load ListBox1.DrawMode = DrawMode.OwnerDrawFixed ListBox1.ItemHeight = 20 ListBox1.Items.Clear () ListBox1.BeginUpdate () Għall Kull pi Bħala Reflection.PropertyInfo Fil GetType (Kulur). GetProperties (Jew Reflection.BindingFlags.Public Reflection.BindingFlags.Static) ListBox1.Items.Add (pi.Name) Jmiss ListBox1.EndUpdate () Tmiem Sub
Fl-ewwel linja ta 'Tagħbija "ListBox1.DrawMode = DrawMode.OwnerDrawFixed" tistabbilixxi li l-elementi kollha ta' kontroll huma mfassla manwalment u jkollhom l-istess għoli. Dan ademças, avveniment DrawItem iqanqal juru eżatt qabel kull oġġett.
Li tiffissa l-avveniment DrawItem ta listbox, agħżel (fil-fehma tad-disinn) il-ListBox1, aħna istampa F4 biex tara l-proprjetajiet, u l-quċċata tal-kaxxa Properties tagħżel il-bolt sajjetti biex tara d-każ li l-kontroll huwa disponibbli , aħna DrawItem u aħna double-click. L-immaġni li ġej juri kif:

u dan huwa l-kodiċi ta 'avveniment DrawItem
ListBox1_DrawItem Privat Sostitut (mittent ByVal Fir-Għan e ByVal Fir System.Windows.Forms.DrawItemEventArgs) Mankijiet ListBox1.DrawItem Rettangolu DIM Kif Rettangolu = l e.Bounds Jekk (e.State U DrawItemState.Selected) Imbagħad e.Graphics.FillRectangle (SystemBrushes.Highlight, rettangolu) Else e.Graphics.FillRectangle (Brushes.White, rettangolu) Tmiem Jekk Dim Kif String nombreColor ListBox1.Items = (e.Index) B DIM Kif New SolidBrush (Color.FromName (nombreColor)) rectangulo.Inflate (-16, -2) e.Graphics.FillRectangle (b, New Rettangolu (rectangulo.X, rectangulo.Y, 30, rectangulo.Height)) e.Graphics.DrawRectangle (Pens.Black, New Rettangolu (rectangulo.X, rectangulo.Y, 30, rectangulo.Height)) Jekk (e.State U DrawItemState.Selected) Imbagħad e.Graphics.DrawString (nombreColor, e.Font, Brushes.White, rectangulo.X + 34, rectangulo.Y + 2) Else e.Graphics.DrawString (nombreColor, e.Font, Brushes.Black, rectangulo.X + 34, rectangulo.Y + 2) Tmiem Jekk Tmiem Sub
Issa aħna biss ħtieġa għall-programm tal-buttuni eventosde kif muri fil-kodiċi li ġej:
BtnAceptar_Click Privat Sostitut (mittent ByVal Fir System.Object, ByVal e Bħala System.EventArgs) Mankijiet btnAceptar.Click My.Forms.Form1.BackColor = Color.FromName (ListBox1.SelectedItem) Tmiem Sub BtnCancelar_Click Privat Sostitut (mittent ByVal Fir System.Object, ByVal e Bħala System.EventArgs) Mankijiet btnCancelar.Click Me.Close () Tmiem Sub
Ukoll, sabiex tiġi ttestjata l-applikazzjoni ... jekk kollha marru tajjeb, tidher bħal dan:

I leave xi definizzjonijiet:
Graphics.FillRectangle (Metodu): timla l-interjuri ta 'rettangolu speċifikat permezz ta' par jikkoordinaw, wisa u għoli.
Graphics.DrawRectangle (Metodu): Pinġi rettangolu speċifikat permezz ta 'par jikkoordinaw, wisa u għoli.
Graphics.DrawString (Metodu): Pinġi l-sekwenza ta 'test speċifikat fil-lokazzjoni speċifika u bl-xkupilja speċifikat u oġġetti Font.
Nittama li dan jgħin u tista 'tuża fil-proġetti tiegħek.
Informazzjoni Bitacoras.com ...
Rata fil Bitacoras.com: Dan l-eżempju qamet minn mistoqsija f'dan l-artikolu. Il tresenta ColorDialog kontroll us paletta kulur tradizzjonali, iżda huwa veru li ta 'studio viżwali huwa ferm nicer u turi l-kuluri għall-n tiegħek .....
Eżempju tajjeb ħafna, grazie.
GRAN!
Huwa apprezzat ħafna!
! Tajjeb ħafna!
l-unika ħaġa li ħdimt kien il-buttuna tikkanċella.
haha, I nesa, iżda l-kodiċi hija sempliċi ħafna: Me.Close
jonqos milli jagħżlu l-kulur trasparenti, se jkun? ........... il-kuluri oħra jekk taħdem
salu2
huwa li l-kulur trasparenti ma jistgħux jiġu applikati bħala l-kulur fl-isfond ta 'forma, imma jekk applikat għal kontrolli oħra.
Grazzi għall-kummenti!
ssejvjata ħajja tiegħi dan l-eżempju! ... imma kif nasal biex tara l-iskrin prpiedades fejn inti tbiddel il-kulur? għaliex tikri me ara "My.Forms.Form1.BackColor." grazzi salu2
bonjour
Niġi identifikatur żball mistennija eżattament. <A Jekk (e.State U DrawItemState. Agħżel ed) Imbagħad
e.Graphics.FillRectangle (SystemBrushes.Highlight, rettangolu)
HELP ME MILL FA
Graciass
Tislijiet ...
Jien infittxu tekniki biex tagħmel disinn nicer ta 'kontrolli li għandhom ikunu bħall-ajruport imma jien ma jkollu ebda idea u lanqas jista I issib xi ħaġa jekk jogħġbok jekk inti tista' tgħin lili ma 'dik ta anetmano nirringrazzjak ħafna ...
din vera, nirringrazzjak ħafna għal dan l-eżempju. Nkun nista li japplikawha għall-bżonnijiet tiegħi
Grazzi mill Merida, Yucatan