我正在尝试模拟ComboBox下拉框(或其他下拉框,包括上下文菜单)的行为,即在单击任何其他地方时关闭下拉菜单,即使单击无法聚焦的内容也是如此。
我已经尝试订阅诸如MouseCaptureChanged、LostFocus和Leave之类的事件。我有一个自定义UserControl作为下拉菜单,我只想在用户单击其他地方时将其关闭。
这似乎是许多控件中都可以实现的事情,因此如果没有简单的方法来实现这一点,我会感到惊讶。
到目前为止,我能想到的过于复杂的方法是使用pinvoke和SetCapture()函数,或创建一个MessageFilter。如果这些是唯一的选项,我不确定哪个更好。
我已经尝试订阅诸如MouseCaptureChanged、LostFocus和Leave之类的事件。我有一个自定义UserControl作为下拉菜单,我只想在用户单击其他地方时将其关闭。
这似乎是许多控件中都可以实现的事情,因此如果没有简单的方法来实现这一点,我会感到惊讶。
到目前为止,我能想到的过于复杂的方法是使用pinvoke和SetCapture()函数,或创建一个MessageFilter。如果这些是唯一的选项,我不确定哪个更好。