从面板中删除用户控件时捕获事件
Posted
技术标签:
【中文标题】从面板中删除用户控件时捕获事件【英文标题】:Catch event when remove user control from panel 【发布时间】:2021-10-05 04:46:29 【问题描述】:我写了一个用户控件。我有一个面板,当我单击用户控件中的按钮时,它会添加到面板中。我为用户控件创建了一个点击事件。单击后,用户控件将从面板中删除。我想要求在删除用户控件时捕获事件,我应该使用哪个事件并将其用于面板或用户控件。比如我添加了一个标签,添加用户控件的时候标签会改变,删除的时候标签也会改变。 对不起我的英语不好。
【问题讨论】:
【参考方案1】:您最有可能发现有帮助的事件是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
的控件时,还有一个伴随事件。
【讨论】:
谢谢,它成功了。我最初也尝试使用 controlremove,但它在用户控制中,所以它不会捕获事件 @HiếuPhạm 如果成功了,您能否将其标记为答案?也支持任何有用的答案以上是关于从面板中删除用户控件时捕获事件的主要内容,如果未能解决你的问题,请参考以下文章