c#combobox将autocompletemode与drawitem结合使用

时间:2016-09-28 13:56:07

标签: c# winforms combobox autocomplete

我有一个具有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);
}

0 个答案:

没有答案