I have a Combobox in WinForms with a set of values in it. Now I'll check if the value selected in the combo box is valid or not. Once done, if the value is invalid, I need to show the value in red colour. How to do it? For example: Consider a ComboBox with elements {apple, mango, orange}. Now a new element is added to the list, say, Carrot. Given that, the carrot is an invalid value, I want to show the value carrot in Red Color in the UI. Please let me know how to do it.
Thanks in advance.
Set DrawMode
property of your combo box to OwnerDrawFixed
this.comboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
Define method for custom drawing of combo box items
private void ComboBox1_DrawItem(object sender, DrawItemEventArgs e)
{
var text = comboBox1.Items[e.Index] as string;
e.DrawBackground();
if (text == "orange")
{
TextRenderer.DrawText(e.Graphics,
text, e.Font, e.Bounds.Location, Color.Red);
}
else
{
TextRenderer.DrawText(e.Graphics,
text, e.Font, e.Bounds.Location, e.ForeColor);
}
}
Subscribe this method to event DrawItem
of your combo box
this.comboBox1.DrawItem +=
new System.Windows.Forms.DrawItemEventHandler(this.ComboBox1_DrawItem);