c# - WinForms 和处理自定义控件

标签 c# .net winforms controls dispose

我有以下类(class):

public class NewListBox : ListBox
    {
        public NewListBox()
        {
        }

        private ImageList _myImageList;

        public ImageList ImageList
        {
            get { return _myImageList; }
            set { _myImageList = value; }
        }
     }

我感兴趣的是处理此对象是否会触发对象上的字段(例如 ImageList)的处理,还是我应该实现(覆盖)Dispose 方法并自己完成这项工作?

最佳答案

您应该将 ImageList 添加到控件的 Components 集合,然后 Dispose 的基类实现将处理该集合中的所有内容,您不必自己重写 Dispose。

如果您有任何成员是 IDisposable 但不是组件,那么您将必须在您的控件中重写 Dispose 并自行处理它们。

(我在严格意义上使用从 System.ComponentModel.Component 派生的对象的术语组件)。

关于c# - WinForms 和处理自定义控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10634512/

相关文章:

c# - 确定统一旋转角色的方向?

.net - .NET Remoting 如何处理 Remoting 服务器端的 IP 地址更改

c# - 在另一台机器上运行 c# 应用程序时出现问题

c# - 动态绑定(bind)到 DataTemplate

c# - 用于与佳能/尼康相机对话的商业组件?

c# - 如何从 C# 中的 3x3 单应矩阵获取旋转、平移、剪切

.NET XmlDocument : Including default namespace prefixes in OuterXml

c# - 如何使用 C# 清除 Windows 应用程序中的 datetimepicker 值?

.net - WinForm中如何清除用户控件的内存?

c# - 使用这个结构有什么问题吗?