我修改了组合框控件(WinForms):
当没有选择时(在我的代码中它是item[0]
),然后我将combobox.Font
设置为斜体和灰色颜色,但如果选择了任何其他项目,我将combobox.Font
设置为常规和黑色颜色。
问题是:当“没有选择”并且我开始输入时,例如,我按下“s”键然后我期待这种行为:
1)将颜色更改为黑色,将字体更改为常规。
2)删除文本“公司名称......”并将“s”粘贴到combobox.Text
(自动)
但我只看到第一个,看起来像更改字体后KeyDown
事件消失了,它没有粘贴任何东西到combobox.Text ....
当我尝试通过按键向上和向下更改组合框项目时也是如此。
以下是代码:
private void comboBoxFirmsFilterName_SelectedValueChanged(object sender, EventArgs e)
{
if (comboBoxFirmsFilterName.SelectedIndex == 0)
{
comboBoxFirmsFilterName.Font = new Font(comboBoxFirmsFilterName.Font, FontStyle.Italic);
comboBoxFirmsFilterName.ForeColor = Color.FromArgb(64,64,64);
}
else
{
comboBoxFirmsFilterName.Font = regularFont;
comboBoxFirmsFilterName.ForeColor = SystemColors.WindowText;
}
}
private void comboBoxFirmsFilterName_KeyDown(object sender, KeyEventArgs e)
{
if (comboBoxFirmsFilterName.Font.Italic == true)
{
comboBoxFirmsFilterName.Font = regularFont;
comboBoxFirmsFilterName.ForeColor = SystemColors.WindowText;
}
}
我做错了什么?