我有一个功能请求,当ComboBox被“点击进入”时,它会清除文本,以便用户可以开始输入要搜索的新数据。有没有人知道如何勾选这个?单击文本时以及单击下拉箭头时会触发“单击”事件(这会打开包含项目的下拉列表)。我只希望它发生在第一个,而不是后者。
现在我正在捕获click事件并过滤DroppedDown属性,如下所示:
if(!comboBox.DroppedDown)
{
// clear selection
}
这似乎在大部分时间都有效,但是经常发生错误......所以它不是100%。
如果有人知道这样做的正确方法,我将不胜感激!
答案 0 :(得分:2)
不要处理click
事件。首先,如果用户将焦点选中到控件中,它将不会触发。使用控件获得焦点时触发的Enter
事件。而不是清除文本,你应该只选择所有两个世界中最好的文本:
1)用户可以开始输入新文本,清除任何旧文本或
2)选项卡超过控件并保留所包含的文本。
如果您始终删除以前的文字,可能会激怒用户。
答案 1 :(得分:0)
尝试“Enter”事件。当控件聚焦于表单时会发生这种情况。