【问题标题】:Catching event when a control loses child control当控件失去子控件时捕获事件
【发布时间】:2014-10-28 11:13:51
【问题描述】:

想象一下 Vb.net 中的这个应用程序,我有 2 个面板和几个按钮。我正在将按钮从面板移动到其他面板(通过捕获拖放事件)。我到达了它。

现在我正在尝试以下操作: 当该面板丢失某些子按钮(或控件)时,是否有任何方法可以从面板引发事件?

提前致谢。

【问题讨论】:

    标签: vb.net events .net-4.5


    【解决方案1】:

    当控件添加到面板时尝试此事件:

    Private Sub Panel1_ControlAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles Panel1.ControlAdded
    
    End Sub
    

    当一个控件被移除时:

    Private Sub Panel1_ControlRemoved(ByVal sender As Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles Panel1.ControlRemoved
    
    End Sub
    

    【讨论】:

      【解决方案2】:

      面板控件似乎没有在其子控件集合更改时触发的事件。 source

      最好的办法是将此作为放置事件的一部分进行处理。大概您有一些代码来确定是否要移动按钮。如果这是真的,当面板失去控制时,调用一个函数来做你想做的一切。

      【讨论】:

      • 我明白你的意思。我可以检测到任何控件的父级更改时间吗?谢谢!
      • 为此,您需要检查我认为所有控件都继承的控件类的事件:msdn.microsoft.com/en-us/library/… 有一个事件“ParentChanged”,它“在父属性值更改时发生”。
      猜你喜欢
      • 1970-01-01
      • 2019-01-31
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多