Gunakan warna dari program anda dalam Visual Studio

Contoh ini muncul dari query di artikel ini .

Para ColorDialog kontrol menyajikan palet warna tradisional, tetapi kenyataannya adalah bahwa studio visual jauh lebih bagus dan menunjukkan semua warna dengan nama seperti yang didefinisikan dalam properti obyek System.Drawing.

Mengingat masalah yang tidak ada kontrol untuk menunjukkan kepada kita ini daftar warna kita melihat bagaimana kita dapat constriur satu diri kita sendiri.

Sebagai contoh kita membutuhkan sebuah proyek baru dan dua bentuk.

Dalam bentuk pertama tongkat hanya perlu memanggil Form 2, seperti terlihat pada gambar berikut:

coloresNombre001

tombol dan kode tersebut adalah sebagai berikut:

 BtnColor_Click Private Sub (ByVal pengirim Sebagai System.Object, ByVal e Sebagai System.EventArgs) Menangani btnColor.Click
 As New Form2 Dim vForm2
 vForm2.ShowDialog ()
 End Sub

dan dalam bentuk ini akan n botoes ListBox dan dua (menerima dan membatalkan) seperti dalam bentuk berikut:

coloresNombre002

Dalam acara Load form menetapkan beberapa sifat ListBox dan membawa nama-nama warna dengan kode berikut:

 Form2_Load Private Sub (ByVal pengirim Sebagai System.Object, ByVal e Sebagai System.EventArgs) Handles MyBase.Load
 ListBox1.DrawMode = DrawMode.OwnerDrawFixed
 ListBox1.ItemHeight = 20

 ListBox1.Items.Clear ()
 ListBox1.BeginUpdate ()
 Untuk Setiap pi Sebagai Reflection.PropertyInfo Dalam GetType (Warna) GetProperties (Atau Reflection.BindingFlags.Public Reflection.BindingFlags.Static).
 ListBox1.Items.Add (pi.Name)
 Berikutnya
 ListBox1.EndUpdate ()
 End Sub

Pada baris pertama Load "ListBox1.DrawMode = DrawMode.OwnerDrawFixed" menetapkan bahwa seluruh elemen kontrol diambil secara manual dan memiliki ketinggian yang sama. Ini ademças, acara DrawItem memicu pertunjukan sebelum setiap item.

Untuk mengatur acara DrawItem dari ListBox, pilih (dalam tampilan desain) ListBox1, kita tekan F4 untuk melihat properti, dan bagian atas kotak Properties pilih petir untuk melihat hal kontrol tersedia , kita DrawItem dan kita klik dua kali. Gambar berikut menggambarkan bagaimana:

coloresNombre003

dan ini adalah kode acara DrawItem

 ListBox1_DrawItem Private Sub (ByVal pengirim Sebagai Obyek, e ByVal Sebagai System.Windows.Forms.DrawItemEventArgs) Menangani ListBox1.DrawItem
 Dim persegi panjang Sebagai Persegi Panjang = e.Bounds

 Jika (e.State Dan DrawItemState.Selected) Lalu
 e.Graphics.FillRectangle (SystemBrushes.Highlight, persegi panjang)
 Lain
 e.Graphics.FillRectangle (Brushes.White, persegi panjang)
 End If

 Dim As String = ListBox1.Items nombreColor (e.Index)

 Dim b As New SolidBrush (Color.FromName (nombreColor))

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

 e.Graphics.DrawRectangle (Pens.Black, New Rectangle (rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

 Jika (e.State Dan DrawItemState.Selected) Lalu
 e.Graphics.DrawString (nombreColor, e.Font, Brushes.White, rectangulo.X + 34, rectangulo.Y + 2)
 Lain
 e.Graphics.DrawString (nombreColor, e.Font, Brushes.Black, rectangulo.X + 34, rectangulo.Y + 2)
 End If
 End Sub

Sekarang kita hanya perlu memprogram tombol eventosde seperti terlihat pada kode berikut:

 BtnAceptar_Click Private Sub (ByVal pengirim Sebagai System.Object, ByVal e Sebagai System.EventArgs) Menangani btnAceptar.Click
 My.Forms.Form1.BackColor = Color.FromName (ListBox1.SelectedItem)
 End Sub

 BtnCancelar_Click Private Sub (ByVal pengirim Sebagai System.Object, ByVal e Sebagai System.EventArgs) Menangani btnCancelar.Click
 Me.Close ()
 End Sub

Nah, untuk menguji aplikasi ... jika semua berjalan lancar, terlihat seperti ini:

coloresNombre004

Aku meninggalkan beberapa definisi:

Graphics.FillRectangle (Metode): Mengisi interior sebuah persegi panjang yang ditentukan oleh sepasang koordinat, lebar dan ketinggian.

Graphics.DrawRectangle (Metode): Buatlah persegi panjang ditentukan oleh sepasang koordinat, lebar dan ketinggian.

Graphics.DrawString (Metode): Buatlah string teks tertentu di lokasi tertentu dan dengan Brush ditentukan dan objek Font.

Semoga ini bisa membantu dan Anda dapat menggunakan dalam proyek Anda.

11 Responses to "Gunakan warna Visual Studio dalam program anda"

  1. Bitacoras.com mengatakan:

    Informasi Bitacoras.com ...

    Laju Bitacoras.com: Contoh ini muncul dari permintaan dalam artikel ini. Kontrol ColorDialog tresenta kita palet warna tradisional, tetapi tru e yang dari visual studio yang jauh lebih bagus dan menunjukkan semua warna untuk n Anda .....

  2. Cristyan mengatakan:

    Contoh yang sangat baik, terima kasih.

  3. Jose Luis mengatakan:

    GREAT!
    Sangat dihargai!

  4. Oscar Daniel bilang:

    ! Sangat baik!
    satu-satunya yang saya bekerja adalah tombol batal.

  5. Erick mengatakan:

    gagal untuk memilih warna transparan, itu akan terjadi? ........... yang lain warna jika bekerja

    salu2

    • Elisa mengatakan:

      adalah bahwa warna transparan tidak dapat diterapkan sebagai warna latar belakang formulir, tetapi jika diterapkan pada kontrol yang lain.

      Terima kasih atas komentar!

  6. gercer89 mengatakan:

    menyelamatkan hidup saya contoh ini ... tapi! karena saya bisa melihat layar prpiedades di mana Anda mengubah warna? karena itu mari saya lihat "My.Forms.Form1.BackColor." thanks salu2

  7. diego bilang:

    halo
    Saya mendapatkan error Diharapkan identifier persis. <A Jika (e.State Dan DrawItemState. Pilih red) Lalu
    e.Graphics.FillRectangle (SystemBrushes.Highlight, persegi panjang)

    HELP ME OLEH FA
    Graciass

  8. Henry mengatakan:

    Salam ...
    Saya mencari teknik untuk membuat desain yang lebih bagus dari kontrol yang harus seperti bandara, tapi saya tidak tahu Saya juga tidak bisa menemukan sesuatu silahkan jika Anda bisa membantu saya dengan bahwa dari anetmano terima kasih banyak ...

  9. David bilang:

    VERA ini, terima kasih banyak untuk contoh ini. Apakah saya bisa menerapkannya untuk kebutuhan saya

    Terima kasih dari Merida, Yucatan

Komentar