.net - 如何知道何时不再使用 UserControl(无 Close 事件)

标签 .net winforms user-controls

我在 WinForm 中使用 UserControl 来显示数据。 我还使用命令模式,以便 UserControl 注册一个(弱)事件并在触发命令时执行操作。

WinForm 上,我可以取消注册 Close 事件中的事件。但是 UserControl 上没有这样的事件。 我连接了我认为当 UserControl 不再位于显示堆栈中时会触发的事件,但找不到任何有用的东西。 为了解决这个问题,我检查 Parent 是否为空,并且这适用于大多数情况。

现在我想要另一个 UserControl 的子 UserControl (将 UserControl 放入 TabControl 中) >) 并且当不再显示父控件时,子控件的 Parent 属性将不再为 null。

有什么方法可以知道UserControl是否被使用?

到目前为止我已经尝试过:Dispose() 不会立即被系统调用,所以它没有用; IsVisible 也不会被系统更新;没有触发 CloseUnload 事件。

干杯。

最佳答案

控件上有一个 HandleDestroyed 事件可能适合您。

关于.net - 如何知道何时不再使用 UserControl(无 Close 事件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7256021/

相关文章:

c# - 为什么我的表单在调用 BeginConnect 时卡住?

WPF:我可以继承 UserControl 但不提供 XAML 吗?

c# - 从 .NET 3.5 更改为 4.5.1 时无法加载文件或程序集 'Interop.Microsoft.Office.Core, Version=2.4.0.0, ...'

c# - 替换 Xml 节点/元素的内部文本

c# - 内存中的字符串对象总数

c# - 为什么我的 winforms 秒表时间很慢?

c# - 如何区分用户控件在表单上加载和运行时加载

c# - 使用 MVVM LIGHT (WPF) 在 UserControl 中导航

.net - .NET 中是否有任何基于消息的 TCP 套接字库?

.NET Word Interop 适用于 Windows 7 但不适用于 Server 2008