【问题标题】:Catch event when remove user control from panel从面板中删除用户控件时捕获事件
【发布时间】:2021-10-05 04:46:29
【问题描述】:

我写了一个用户控件。我有一个面板,当我单击用户控件中的按钮时,它会添加到面板中。我为用户控件创建了一个点击事件。单击后,用户控件将从面板中删除。我想要求在删除用户控件时捕获事件,我应该使用哪个事件并将其用于面板或用户控件。比如我添加了一个标签,添加用户控件的时候标签会改变,删除的时候标签也会改变。 对不起我的英语不好。

【问题讨论】:

    标签: c# winforms events


    【解决方案1】:

    您最有可能发现有帮助的事件是ControlControlRemoved 事件。

    docs 对此进行了描述:

    从 Control.ControlCollection 中删除控件时发生。

    在您的示例中,您将为此添加一个事件处理程序到Panel。假设您的面板被命名为panel1(请不要这样命名),这将是这样的:

    // In initialisation code somewhere
    panel1.ControlRemoved += panel1_ControlRemoved;
    
    private void panel1_ControlRemoved(object sender, ControlEventArgs e)
    {
        // Do something
        ...
        // Note: removed control is referenced by e.Control
    }
    

    只要从Panel 中删除控件,就会引发此问题。

    当添加名为ControlAdded 的控件时,还有一个伴随事件。

    【讨论】:

    • 谢谢,它成功了。我最初也尝试使用 controlremove,但它在用户控制中,所以它不会捕获事件
    • @HiếuPhạm 如果成功了,您能否将其标记为答案?也支持任何有用的答案
    猜你喜欢
    • 1970-01-01
    • 2013-05-21
    • 2011-10-16
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多