【发布时间】:2021-10-05 04:46:29
【问题描述】:
我写了一个用户控件。我有一个面板,当我单击用户控件中的按钮时,它会添加到面板中。我为用户控件创建了一个点击事件。单击后,用户控件将从面板中删除。我想要求在删除用户控件时捕获事件,我应该使用哪个事件并将其用于面板或用户控件。比如我添加了一个标签,添加用户控件的时候标签会改变,删除的时候标签也会改变。 对不起我的英语不好。
【问题讨论】:
我写了一个用户控件。我有一个面板,当我单击用户控件中的按钮时,它会添加到面板中。我为用户控件创建了一个点击事件。单击后,用户控件将从面板中删除。我想要求在删除用户控件时捕获事件,我应该使用哪个事件并将其用于面板或用户控件。比如我添加了一个标签,添加用户控件的时候标签会改变,删除的时候标签也会改变。 对不起我的英语不好。
【问题讨论】:
您最有可能发现有帮助的事件是Control 的ControlRemoved 事件。
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 的控件时,还有一个伴随事件。
【讨论】: