ComboBox在键入

时间:2017-02-24 15:22:38

标签: c# winforms events combobox textchanged

我在WinForms编程。
我有一个ComboBox设置与初始灰色ForeColor。我的目标是在用户开始输入内容时更改此ComboBox的文本颜色。

我尝试使用_TextChangedTextUpdate事件但不起作用。

private void ComboBox1_TextChanged(Object sender, EventArgs e)
{
    ComboBox1.ForeColor = SystemColors.ControlText;
}

我已经使用事件_SelectedIndexChanged在用户从下拉列表中选择项目时更改文本颜色,并且效果很好,但如果用户输入内容,文本仍然是灰色的(有一个与ComboBox关联的AutoCompleteCustomSource集合,以便用户可以编写以使用下拉列表。)

有什么建议吗?

修改
我已经解决了这个问题:

注册Form1.Designer.cs

this.ComboBox1.KeyUp += new System.Windows.Forms.KeyEventHandler(this.ComboBox1_KeyUp);` 

使用此代码:

private void ComboBox1_KeyUp(Object sender, KeyEventArgs e) 
{ 
    ComboBox1.ForeColor = SystemColors.ControlText; 
}

2 个答案:

答案 0 :(得分:3)

使用文本框触发的KeyUpKeyDownKeyPress个事件。您可能不希望KeyPress用于此目的。文本已经更改时会触发TextChanged,这就是为什么键入的新字符在订阅时没有不同颜色的原因。

答案 1 :(得分:2)

你看过KeyUp事件吗? MSDN Keyup

您应该可以订阅此活动并在其中执行任何操作。