我在WinForms中编程。
我有一个组合框与初始灰色ForeColor设置。我的目标是在用户开始键入内容时更改此ComboBox的文本颜色。
ComboBox在输入时更改文本颜色的事件
我试图使用_TextChanged
和TextUpdate
事件,但不起作用。
private void ComboBox1_TextChanged(Object sender, EventArgs e)
{
ComboBox1.ForeColor = SystemColors.ControlText;
}
我已经使用了Event _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;
}
非常感谢@ user1895086! 虽然目前还不清楚KeyUp,KeyDown和KeyPress之间的区别,但我已经解决了这个问题:
1)在Form1.Designer中注册。cs'
this.ComboBox1.KeyUp + = new System.Windows.Forms.KeyEventHandler(this.ComboBox1_KeyUp);使用此代码
2)
私人无效ComboBox1_KeyUp(对象发件人,KeyEventArgs E) { ComboBox1.ForeColor = SystemColors.ControlText; } – Wiccio