【发布时间】:2011-12-29 19:28:07
【问题描述】:
我的表单上有一个组合框。它处于下拉模式并具有自动完成功能。首次显示时,其文本为"Choose part..."。我希望它在做出选择后将其文本重置为此。我试过这个(假设组合框名为comboBox1):
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
// [omitted]
comboBox1.Text = "Choose part...";
}
仅当使用键盘进行选择时才有效(例如,输入一个值并按[Enter] 或开始输入,使用箭头选择一个自动更正值,然后按@987654325 @)。使用鼠标进行选择时,文本仍保持选定的值。
我之前遇到过键盘和鼠标对组合框执行不同操作的问题,但这与某些事件未触发有关。我确定这个事件正在触发(上面省略的代码不管使用什么方法都会运行)。
有人见过这个吗?有什么解决办法吗?
【问题讨论】:
-
试图隐藏用户实际做出选择的事实会使 UI 很难使用。我想您可以使用 Leave 事件来恢复文本。请考虑只使用标签。你甚至可以把它放在文本框部分的顶部。
-
@HansPassant 选择被“复制”到另一个位置(因此用户知道他们做出了选择)。问题是我想向用户表明组合框可以再次用于另一个选择,而不影响第一个选择。