Visual Studio Style ComboBox Color

Posted at : Jan/31/2008
7645 Views | 0 Comments

Kita sering melihat ComboBox yang berisi nama-nama warna yang mempunyai gambar kotak di sebelah namanya yang diisi dengan warna yang bersesuaian. ComboBox tersebut salah satunya dapat kita temukan pada property grid control di properties window. Lalu bagaimana caranya untuk membuat control tersebut. It's simple ternyata :)...Mari kita lihat langkah-langkahnya.

1. Hal pertama yang harus kita lakukan yaitu membuat Windows Forms Control Library  project template pada Visual Studio anda.

2. Modifikasi file component yang diberikan secara default. Kode yang dimodifikasi yaitu Inheritance nya. Jadi anda buka file component tersebut di file .designer.vb atau .designer.cs, lalu kode pewarisan tersebut diganti dengan "ComboBox".

3. Buat sebuah prosedur untuk looping item yang terdapat dalam enumerasi KnownColor untuk ditambahkan ke koleksi Item dari combo box nya. Nantinya didalam combo box ini akan terdapat nama-nama warna. Berikut prosedurnya :

   1:  Private Sub LoadColor()
   2:     For Each aColor In [Enum].GetNames(GetType(System.Drawing.KnownColor))
   3:         Me.Items.Add(aColor)
   4:     Next
   5:  End Sub

4. Agar combobox bisa menampilkan kotak / shape warna yang telah kita tentukan pada properti Text maka properti DropDownStyle harus di set ke ComboBoxStyle.DropDownList. Prosedur LoadColor diatas dipanggil di constructornya. Berikut tambahan kode di constructor :

   1:  Public Sub New()
   2:         MyBase.New()
   3:   
   4:         InitializeComponent()
   5:   
   6:         Me.DropDownStyle = ComboBoxStyle.DropDownList
   7:   
   8:         Me.LoadColor()
   9:         Me.SelectedIndex = 1
  10:   End Sub

5. Langkah terakhir yaitu merubah implementasi kode pada prosedur OnDrawItem. Prosedur ini digunakan untuk merubah tampilan item yang terdapat di combo box. Disinilah letak manipulasi item yang kita inginkan untuk dirubah. Langsung saja kita lihat kodenya :

   1:   Protected Overrides Sub OnDrawItem(ByVal e As System.Windows.Forms.DrawItemEventArgs)
   2:          MyBase.OnDrawItem(e)
   3:   
   4:          If e.Index > 0 Then
   5:              Dim strTeks As String = Me.Items(e.Index).ToString
   6:              Dim intRectWidth As Integer = CType(System.Math.Round(Me.Width * 0.1), Integer)
   7:              Dim rect As New Rectangle(e.Bounds.X, e.Bounds.Y, intRectWidth, e.Font.Height)
   8:   
   9:              e.Graphics.DrawEllipse(Pens.Black, rect)
  10:              e.Graphics.FillEllipse(New SolidBrush(Color.FromName(strTeks)), rect)
  11:              e.Graphics.DrawString("==> " & strTeks, Me.Font, New SolidBrush(Color.Black), _
  12:                                    e.Bounds.X + (intRectWidth + 5), e.Bounds.Y)
  13:          End If
  14:      End Sub

6. Prosedur di atas digunakan untuk membuat ellipse yang warnanya diisi sesuai dengan nama warna yang tampil di combobox nya.

- Kode di line-5 digunakan untuk mengambil teks yang berisi nama warnanya, dari teks inilah kita buat warna untuk mengisi shape dari ellipse yang akan ditampilkan di combobox.

- Line-6 dibuat untuk mengatur lebar dari ellipse, saya ambil hanya 1% dari lebar combobox.

- Line-7 digunakan untuk membuat batas ellipse yang akan digunakan

- Line-9 dan line-10 berisi kode untuk membuat ellipse

- Line-11 digunakan untuk membuat teks berupa nama warna di sebelah shape ellipse...That's it :)

7. Build project...Tambahkan control tersebut pada sebuah windows application project template.

8. Buat design interface seperti yang ada pada gambar dibawah. Rectangle shape yang terdapat di form dibuat dengan menggunakan Rectangle shape yang terdapat di dalam Microsoft Visual Basic Power Packs v 2.0, anda bisa mendownloadnya dari situs microsoft.

9. Preview dari aplikasi setelah dijalankan :

Enjoy it ! :)

 


[Comments]


[Write your comment]

Name (required)

Email (required-will not published)

Comment
wepf
Input code above below (Case Sensitive) :

ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Founder & IT Trainer Native Enterprise | MCT (2008-2019) | MVP (2009-2016) | Xamarin Certified Professional | MTA | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.

[Read More...]

TOP DOWNLOAD

Mapping Hak Akses User Pada MenuStrip Sampai Control Button
downloaded 6983 times

Bagaimana caranya menginstal database ketika deploying sebuah aplikasi?
downloaded 4893 times

Simple Voice Engine Application With Sound Player Class...
downloaded 4045 times

Change Group,Sort Order, Filtering By Date in Crystal Reports
downloaded 3460 times

WinForms DataGrid Paging With SqlDataAdapter
downloaded 2881 times


LINKS

CERTIFICATIONS

Xamarin Certified
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  Facebook  Instagram  LinkedIn   Twitter

RSS


NATIVE ENTERPRISE NEWS

© Copyright 2006 - 2024   Rully Yulian MF   All rights reserved.