WinForms ComboBox - 单击文本输入时的事件

时间:2011-05-16 21:11:21

标签: c# winforms combobox

我有一个功能请求,当ComboBox被“点击进入”时,它会清除文本,以便用户可以开始输入要搜索的新数据。有没有人知道如何勾选这个?单击文本时以及单击下拉箭头时会触发“单击”事件(这会打开包含项目的下拉列表)。我只希望它发生在第一个,而不是后者。

现在我正在捕获click事件并过滤DroppedDown属性,如下所示:

if(!comboBox.DroppedDown)
{
    // clear selection
}

这似乎在大部分时间都有效,但是经常发生错误......所以它不是100%。

如果有人知道这样做的正确方法,我将不胜感激!

2 个答案:

答案 0 :(得分:2)

不要处理click事件。首先,如果用户将焦点选中到控件中,它将不会触发。使用控件获得焦点时触发的Enter事件。而不是清除文本,你应该只选择所有两个世界中最好的文本:

  

1)用户可以开始输入新文本,清除任何旧文本或

     

2)选项卡超过控件并保留所包含的文本。

如果您始终删除以前的文字,可能会激怒用户。

答案 1 :(得分:0)

尝试“Enter”事件。当控件聚焦于表单时会发生这种情况。