控件的焦点和激活是如何关联的



我正在努力了解如何为窗口、控件及其层次结构处理"活动"one_answers"集中"状态。

这是一个非常宽泛的问题,所以这里是我的实际问题来说明一下:

我有一个控件调用这个。Focus()在某些情况下。此控件显示在Infrastics下拉列表中。当控件调用此项时。Focus()在应用程序的主窗口上引发Deactivated事件,导致下拉列表关闭。如果你想集中注意力,这当然不应该发生。

我需要弄清楚是否有办法将此控件声明为主窗口的子控件,这样主窗口就不会因为子控件想要焦点而被"停用"。我甚至不确定这是否可能,但我找不到任何关于这些事件的文件。(这是MS文档供您娱乐。)

有一个专用的窗口消息,表示窗口已激活,即WM_ACTIVATE消息。它生成Form.Activated事件。Windows只将其发送到顶级窗口。换句话说,没有嵌入较大窗口中并且没有父窗口的窗口。自定义下拉窗口可以类似于顶级窗口,其显著特点是能够扩展到其所在窗口的边界之外。组合框的下拉列表就是一个例子。

当你给表单焦点时,这会为它生成Deactivated事件,这只是一个bug。他们没有给窗户正确的家长。请联系Infrasgistics以获得支持。

我记得,激活是一个表单级别的事情,而Focus是一个控件级别的事情。因此,在应用程序中,一个表单是活动的,该表单上的一个控件可以具有焦点。

您调用的控件Focus是主窗体的一部分吗?

相关内容

  • 没有找到相关文章

最新更新