.Net快速开发很便利,但有时总会碰到一些不痛不痒的小问题,让人无从下手解决。比如这个断断续续折磨了我好几天的comboBox抢占焦点问题。
窗体上有一个comboBox,还有一些其他控件也需要接收键盘输入。在没有操作comboBox之前,一切都是正常的,键盘事件流到了我预设的窗体按键事件处理函数里。但是,只要操作了comboBox,似乎它以后就独占了输入焦点,无论是窗体还是其它控件,都无法再接到按键事件。
我尝试了一些方法,包括使用窗体的KeyPreview、WndProc处理函数,使用focus()将焦点设给其他控件等,总是不能完美解决。感到可能和win form的UI消息传递机制有关,在MSDN上看了一些文章又言之泛泛,深入一些的介绍不知道去哪里找。直到我换了几个英文搜索关键词,在stackoverflow上扫到了这个帖子上的一条语句
"