我有一个具有autocompletemode属性的combobox程序,而且每个组合框都有不同的颜色(drawitem画笔),如“Sky”字样是蓝色,“Fire”是红色等等。
当我正常选择组合框时,文字会变得丰富多彩。
当我输入一个单词(例如:'F'
)时,组合框将显示以'F'
开头的单词(例如:“Fire”,“Fire Truck”)但颜色将恢复正常(黑色)并且不是红色的。
以下是autocompletemode和drawitem的示例代码:
public FColor()
{
InitializeComponent();
cmbColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown;
cmbColor.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
cmbColor.AutoCompleteSource = AutoCompleteSource.ListItems;
}
private void cmbColor_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
string text = ((ComboBox)sender).Items[e.Index].ToString();
Brush brush;
if (text.Equals("Sky") | text.Equals("Ice") | text.Equals("Cold"))
{
brush = Brushes.Blue;
}
else if (text.Equals("Fire") | text.Equals("Flame") | text.Equals("Volcano") | text.Equals("Fire Truck))
{
brush = Brushes.Red;
}
else
{
brush = Brushes.Yellow;
}
e.Graphics.DrawString(text, ((Control)sender).Font, brush, e.Bounds.X, e.Bounds.Y);
}