2011-05-16 70 views
1

我有一个功能请求,当一个ComboBox被点击进入时,它会清除文本,以便用户可以开始输入新的数据进行搜索。有没有人知道一种方法来钩入?单击文本时以及单击下拉箭头(打开包含项目的下拉列表)时会引发'单击'事件。我只希望它发生在第一个,而不是后者。WinForms ComboBox - 点击文本输入时的事件

现在我正在拍摄的DroppedDown财产click事件和过滤,像这样:

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

这似乎是工作的大部分时间,但虫子频繁,以及...所以它不是100%。

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

回答

2

请勿处理click事件。首先,如果用户将焦点放入控件中,它将不会触发。使用控件接收焦点时触发的Enter事件。和而不是清除文本,你应该选择它所有这将给两全其美:

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

2)选项卡过去控制并保留原样。

如果您总是删除以前的文本,您可能会激怒用户。

0

尝试“Enter”事件。它发生在一个控件将注意力集中在表单上时。