Geçerli bir proje için, yanındaki renk resminin (dizgiler) yanında küçük bir örnek karesinin bulunduğu bir açılır menüye ihtiyacım vardı (resim). Böylece, bunu başarmak için özel bir ComboBox tasarlayabildim. Ancak, bir sorun yaşıyorum .... listeden bir öğe seçtiğimde, renk örneği görünmüyor, yalnızca rengin adı yok. öğeden sonraÖzel bir ComboBox İçinde Resim Çizme
seçilir:
Genişletilmiş Menu (aşağıdaki örneklere bakın) dizeleri yanında başlamak için renkleri çekmek için
, ben kullanılmış:
// Draws the items into the ColorSelector object
protected override void OnDrawItem(DrawItemEventArgs e)
{
e.DrawBackground();
e.DrawFocusRectangle();
DropDownItem item = (DropDownItem)Items[e.Index];
// Draw the colored 16 x 16 square
e.Graphics.DrawImage(item.Image, e.Bounds.Left, e.Bounds.Top);
// Draw the value (in this case, the color name)
e.Graphics.DrawString(item.Value, e.Font, new
SolidBrush(e.ForeColor), e.Bounds.Left + item.Image.Width, e.Bounds.Top + 2);
base.OnDrawItem(e);
}
Bir DropDownItem, görüntü ve çizilecek dizeyi içerir. Yani ... kimse bir öğe seçildiğinde, liste genişletildiğinde olduğu gibi ComboBox'ın görüntüyü ve dizgeyi çizmesini sağlamak için ne yapmam gerektiğini veya ne yapmam gerektiğini biliyor mu?
Çok teşekkürler; Şerefe! eğer yardımcı olur
Mükemmel! Bu güzel çalışıyor! Çok teşekkür ederim. Kontrolün en üstte bir TextBox nesnesi kullandığı hakkında hiçbir fikrim yoktu; Bu ilginç (ve belirsiz) bir uygulama gibi görünüyor. – JToland