从面板中删除用户控件时捕获事件

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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 如果成功了,您能否将其标记为答案?也支持任何有用的答案

以上是关于从面板中删除用户控件时捕获事件的主要内容,如果未能解决你的问题,请参考以下文章

需要鼠标滚动滚动用户控件

从用户控件中导航WPF选项卡控件?

当用户控件具有焦点时,如何触发表单级事件?

在按钮单击时在 Wfp 中使用用户控件

使用啥控件从相机捕获图像并在 ui 上显示为带有事件 xamarin ios 的缩略图

WPF 弹出窗口捕获鼠标双击事件