如何捕捉鼠标在自定义控件之外单击或者双击
lmhcs 2010-03-05 08:43:02 vb。net通过设置 AutoCompleteCustomSource、AutoCompleteMode 和 AutoCompleteSource 可以实现文本框自动完成。但美中不足就是,当没有文本框还没有输入的时候,那个下拉框是不会出来的,不管你双击,单击,就是不能实现想百度的搜索框那样,只要双击就能出线下拉框。
我自己想个办法,就是当文本还没有文本的的时候,我自己添加列表框出来给客户选择,当有了文本的时候就关闭自己的文本框,只使用文本框自己的下拉框
因为要用到若干这样的文本,所以我用自定义控件来实现这样的功能 。我创建CustomControl控件,继承自文本框,然后再需要的地方,把列表框显示出来。
现在遇到一个问题,就是当文本框出现自己添加的列表款的时候,客户如果在文本框之外点击一下,比如窗体或者标签之类,点击一下,明显客户是想让列表框关闭,我该怎么捕捉这样的事件呢?当客户在有焦点的空间点击,文本框失去焦点,我可以在levea事件判断,然后关闭,但没有焦点的呢?比如窗体或者标签。因为点击了窗体或者标签,CustomControl并不会失去焦点。我该在哪里捕捉这样的事件呢?一句话,就是在自定义控件中,如何捕捉鼠标在控件之外单击或者双击。