代码之家  ›  专栏  ›  技术社区  ›  Skitzafreak

跟踪窗口作为最后焦点

  •  0
  • Skitzafreak  · 技术社区  · 7 年前

    我正在创建的vb.net程序在 TableLayoutPanel 并向它们添加表单元素。我需要记录下最后一个有焦点的面板是什么,并且我正在撞到一堵砖墙。

    我已尝试为面板具有焦点时创建事件类:

    Private Sub Self_GotFocus(ByVal sender As Object, ByVal e As EventArgs) Handles Me.GotFocus
        GlobalController.Focus_Target = Me.Name
    End Sub
    

    每个面板的类继承自 Windows.Forms.FlowLayoutPanel ,所以我打电话给 Me.GotFocus . 另外, GlobalController 类只是用来保存程序全局变量的类。

    现在我遇到的问题是,这个事件似乎只在我实际删除面板时触发。创建面板时,如果我单击它或它的任何表单元素,事件永远不会被触发(我用断点调试了程序)。

    我不明白为什么只有在删除面板时才会触发,而不是在其他任何时候。我应该用别的活动代替 GotFocus ?

    1 回复  |  直到 7 年前
        1
  •  0
  •   PavlinII    7 年前

    使用 .Enter 在面板中的事件,因为GotFocus只与聚焦控件(而不是其父控件)相关,主要是在设置了uiCues时。

    MSDN GotFocus