vs2008 winform 程序 当combobox控件在展开状态的时候,直接点击其它控件会使用combobox控件收回,再次单击才会执行焦点转移.现在我想实现的是:当combobox控件在展开状态的时候,直接点击其它控件或窗体的其它位置就让combobox控件收回并转移焦点.
不知道C#的代码如何实现.请教高手!

解决方案 »

  1.   

    没明白我说的意思,我说的是当把combobox控件点击让它展开的时候,我什么也不选择,在窗口其它地方再点一下让combobox收回并转移焦点,收回当然没问题,主要是收回后焦点还在combobox上,要点两次才行,我要实现的是单一次。
      

  2.   

    GetCapture  的作用就是你在ComboBox以外点击鼠标后,在ComboBox中仍然能收到鼠标点击的事件,根据当时鼠标的位置,判断出鼠标是在Combox(包括TreeView)内点击的鼠标,还是在之外点击的鼠标。
      

  3.   

    或者你可以在DropDownClosed事件里面,让另外的控件获得焦点,那么ComboBox就自然失去焦点了。
      

  4.   

    DropDownClosed事件里面让其它控件获得焦点,应该可以,可是我不知道怎么获取鼠标点击的控件,我想在这个事件里写代码让焦点转移到鼠标点击的控件上。
      

  5.   

    用ToolStripDropDown类自定义的下拉控件,没有组合框这个问题。
      

  6.   

    用鼠标的点击事件吧,当鼠标点击其他控件时ComboBox失去焦点