Uża l-kuluri tal-programm tiegħek fil Visual Studio

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:

coloresNombre001

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:

coloresNombre002

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:

coloresNombre003

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:

coloresNombre004

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.

11 Responses għal "Użu kuluri viżwali Studio fil-programm tiegħek"

  1. Bitacoras.com jgħid:

    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 .....

  2. Cristyan jgħid:

    Eżempju tajjeb ħafna, grazie.

  3. Jose Luis:

    GRAN!
    Huwa apprezzat ħafna!

  4. Oscar Daniel:

    ! Tajjeb ħafna!
    l-unika ħaġa li ħdimt kien il-buttuna tikkanċella.

  5. Erick:

    jonqos milli jagħżlu l-kulur trasparenti, se jkun? ........... il-kuluri oħra jekk taħdem

    salu2

    • Elisha:

      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!

  6. gercer89 jgħid:

    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

  7. diego:

    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

  8. Henry:

    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 ...

  9. David:

    din vera, nirringrazzjak ħafna għal dan l-eżempju. Nkun nista li japplikawha għall-bżonnijiet tiegħi

    Grazzi mill Merida, Yucatan

Comment