Forum
Merhaba
Combobox veya listbox'ta renkleri ekliyorum. Yanında da rengin gözükmesini istiyorum. Yani renk adı + renk olacak şekilde nasıl ekleme yapabilirm
Teşekkürler
Bir örnek hazırladım, inceleyin;
void Main(){ var form = new Form();
var cmb = new ComboBox(); cmb.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; cmb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; cmb.DropDownWidth = 240; cmb.FormattingEnabled = true; cmb.ItemHeight = 20; cmb.Location = new System.Drawing.Point(54, 117); cmb.Name = "cmb"; cmb.Size = new System.Drawing.Size(172, 26);
ArrayList renkler = new ArrayList(); Type renk = typeof(System.Drawing.Color); PropertyInfo[] p = renk.GetProperties(BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.Public); foreach (PropertyInfo c in p) { cmb.Items.Add(c.Name); } cmb.DrawItem += (sender, args) => { Graphics g = args.Graphics; Rectangle rect = args.Bounds; if (args.Index >= 0) { string n = ((ComboBox)sender).Items[args.Index].ToString(); Font f = new Font("Tahoma", 9, FontStyle.Regular); Color c = Color.FromName(n); Brush b = new SolidBrush(c); g.DrawString(n, f, Brushes.Black, rect.X, rect.Top); g.FillRectangle(b, rect.X + 110, rect.Y + 5, rect.Width - 10, rect.Height - 10); } }; form.Controls.Add(cmb); form.ShowDialog();}
