2016-09-29 42 views
-1

我有一个自定义组合框,当您单击组合框的箭头时,将打开一个单独的控件。我想调用'LostFocus'事件处理程序来关闭自定义控件,当你失去了组合框的焦点。当您单击窗体背景时,Winforms控件LostFocus事件不会触发

如果您单击另一个控件(如文本框),此功能正常工作,但如果您单击窗体的背景则不会触发。

我想模仿当你点击关闭正常组合框的下拉菜单的功能。

+0

也许是因为直到你转移到另一个控制它没有失去焦点,为什么不使用dropdownclosed事件? – BugFinder

+1

这是设计。当焦点实际上丢失时,您只能获得LostFocus(偏好离开)。工具箱中有大量不需要焦点的控件。像PictureBox,Panel等等。和表单。它的子控件占用焦点,就像你的自定义组合框一样。这就是为什么下拉不能这样工作,他们使用Capture属性。这确保即使鼠标不在窗口内时也能看到鼠标事件。 –

+0

我已经尝试了dropdownclosed,但是我没有打开下拉菜单作为自定义控件,因此禁用了下拉菜单。我确实试过把它打开,但我需要点击打开的另一个控件,当下拉打开时这会自动触发,我不想要。我需要一个事件,当你点击背景时触发,但找不到一个。或者,也许只是调用与下拉菜单关闭时所调用的相同的内容? – user3284707

回答

-1

乘坐bool变量在Form水平,并使其进入组合框(的GotFocus)事件. In离开(引发LostFocus)event of组合框, make it FALSE`期间true

订阅Form MouseClick事件并检查bool变量在这个事件。如果true,请在此处调用组合框离开事件。

相关问题