Koristite boje svog programa u Visual Studio

Ovaj primjer je nastao iz upita u ovom članku .

ColorDialog kontrola predstavlja tradicionalni paleta boja, ali istina je da je Visual Studio je puno ljepše i pokazuje sve boje po imenu kao što je definirano u System.Drawing svojstva objekta.

S obzirom na problem koji ne postoji kontrola da nam pokaže ovaj popis boja vidimo kako možemo constriur jedan sami.

Na primjer trebamo novi projekt i dva oblika.

U prvom obliku palica samo na poziv Obrazac 2, kao što je prikazano na sljedećoj slici:

coloresNombre001

gumb i kod je kako slijedi:

 BtnColor_Click Private Sub (ByVal pošiljatelja Kao System.Object, ByVal e kao System.EventArgs) Ručke btnColor.Click
 Kao što je Novi Form2 Dim vForm2
 vForm2.ShowDialog ()
 End Sub

i n obrazac će botoes listbox i dva (OK i Cancel) kao u sljedećem obliku:

coloresNombre002

U obliku je Učitaj događaj uspostaviti neka svojstva listbox kontrole i opterećenje imena boja sa sljedećim kodom:

 Form2_Load Private Sub (ByVal pošiljatelja Kao System.Object, ByVal e kao System.EventArgs) Ručke MyBase.Load
 ListBox1.DrawMode = DrawMode.OwnerDrawFixed
 ListBox1.ItemHeight = 20

 ListBox1.Items.Clear ()
 ListBox1.BeginUpdate ()
 Za svaku pi Kao Reflection.PropertyInfo U GetType (u boji). GetProperties (ili Reflection.BindingFlags.Static Reflection.BindingFlags.Public)
 ListBox1.Items.Add (pi.Name)
 Sljedeći
 ListBox1.EndUpdate ()
 End Sub

U prvom retku Load "ListBox1.DrawMode = DrawMode.OwnerDrawFixed" navodi da su svi elementi kontrole izvući ručno i imaju istu visinu. To je, ADEMCO, DrawItem događaj aktivira pokazuju neposredno prije svake stavke.

Da biste postavili DrawItem slučaju listbox, odaberite (u prikazu dizajna) ListBox1, pritisnite F4 za prikaz svojstava, a na vrhu okviru Svojstva odaberite munja vidjeti događaj koji je dostupan kontrola , i mi radovati se DrawItem dvostruki klik. Sljedeća slika ilustrira kako:

coloresNombre003

i to je DrawItem događaj kod

 ListBox1_DrawItem Private Sub (ByVal pošiljatelja kao objekt, ByVal e kao System.Windows.Forms.DrawItemEventArgs) Ručke ListBox1.DrawItem
 Dim pravokutnik kao pravokutnik = e.Bounds

 Ako (e.State i DrawItemState.Selected) Tada
 e.Graphics.FillRectangle (SystemBrushes.Highlight, pravokutnik)
 Drugo
 e.Graphics.FillRectangle (Brushes.White, pravokutnik)
 Kraj Ako je

 Dim kao niz = ListBox1.Items nombreColor (e.Index)

 Dim B kao New SolidBrush (Color.FromName (nombreColor))

 rectangulo.Inflate (-16, -2)
 e.Graphics.FillRectangle (b, Novi Pravokutnik (rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

 e.Graphics.DrawRectangle (Pens.Black, Novi Pravokutnik (rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

 Ako (e.State i DrawItemState.Selected) Tada
 e.Graphics.DrawString (nombreColor, e.Font, Brushes.White, rectangulo.X + 34, rectangulo.Y + 2)
 Drugo
 e.Graphics.DrawString (nombreColor, e.Font, Brushes.Black, rectangulo.X + 34, rectangulo.Y + 2)
 Kraj Ako je
 End Sub

Sada mi samo treba da program eventosde dvije tipke kako je prikazano na sljedeći kod:

 BtnAceptar_Click Private Sub (ByVal pošiljatelja Kao System.Object, ByVal e kao System.EventArgs) Ručke btnAceptar.Click
 My.Forms.Form1.BackColor = Color.FromName (ListBox1.SelectedItem)
 End Sub

 BtnCancelar_Click Private Sub (ByVal pošiljatelja Kao System.Object, ByVal e kao System.EventArgs) Ručke btnCancelar.Click
 Me.Close ()
 End Sub

Pa, kako bi testirali aplikaciju ... ako sve ide dobro, bit će izgledati ovako:

coloresNombre004

Ja ostaviti neke definicije:

Graphics.FillRectangle (metoda): Ispunjava unutrašnjost pravokutnika određeno par koordinata, širina i visina.

Graphics.DrawRectangle (metoda): Nacrtajte pravokutnik određen koordinirati par, širine i visine.

Graphics.DrawString (metoda): Nacrtajte navedene tekstni niz na određenom mjestu i određenom Četka i Font objekti.

Nadam se da ćete naučiti i kako oni mogu koristiti u svojim projektima.

11 Responses to "Korištenje Visual Studio boje u programu"

  1. Bitacoras.com kaže:

    Bitacoras.com o ...

    Bitacoras.com Vrijednost: Ovaj primjer je nastao iz upita u ovom članku. Kontrola ColorDialog tresenta nas tradicionalno paleta boja, ali istina je da je Visual Studio je puno ljepše i pokazuje sve boje za n ... ..

  2. Cristy kaže:

    Vrlo dobar primjer, hvala.

  3. Jose Luis kaže:

    SUPER!
    To uvelike cijeni!

  4. Oscar Daniel kaže:

    ! Vrlo dobro!
    jedino ne rade za mene je gumb Odustani.

  5. Erick kaže:

    ne za odabir transparentan boje, jer će: ... ... ... .. druge boje, ako se to radi

    salu2

    • Elizej kaže:

      je da je transparentna boja ne može se primijeniti kao boju pozadine obrasca, ali ako primijeniti i na druge kontrole.

      Hvala za komentiranje!

  6. gercer89 kaže:

    spasio moj život ovom primjeru! ... ali kao što sam se vidjeti zaslon prpiedades koji će promijeniti boju? to neće pustiti mene vidjeti "My.Forms.Form1.BackColor." salu2 hvala

  7. Diego kaže:

    bok
    JA dobiti greška Očekivani identifikator točno. <Ako (i e.State DrawItemState. Odaberite ed) Tada
    e.Graphics.FillRectangle (SystemBrushes.Highlight, pravokutnik)

    Pomozi mi FA
    Graciass

  8. Henry kaže:

    Pozdrav ...
    Ja sam obličje za tehnike kako bi ljepši dizajn kontrola koji se mora biti poput zračne luke, ali ja nemam pojma ni sam mogao pronaći nešto molim ako bi mogao pomoć mene s tim ... hvala vam puno za anetmano

  9. David kaže:

    ovo Vera, puno ti hvala za ovaj primjer. Može li se odnose na moje potrebe

    Hvala vam od Merida, Yucatan

Komentar