c# - 在表单中处理自定义内存控件
问题描述
我有一个Form
(嗯,我的窗口,它继承自Form
),我想在其中创建一些控件一次,然后在此类中的整个代码中引用它们。
所以我创建了字段:
private Label _someCounter;
private Label _someAnotherCounter;
我初始化它们,随心所欲地使用它们,这很棒。
但我还需要记住如何处理它们,问题是:我该怎么做?我可以想到三种方法:
我在由设计师生成的覆盖方法中编写了更多代码
Dispose
(因为设计师可能会在一段时间内覆盖它,我不喜欢这个想法)。我
copmonents
在一个类中找到了一个字段,该字段由生成的Dispose
覆盖处理,所以我只是将这些控件添加到copmonents
集合中,因此它们会自动处理。毕竟,我也在想,毕竟我将它们添加到我的界面中,所以
component
无论如何都会添加它们。所以我不需要做任何事情。
解决方案
好的,所以你可以创建虚拟类:
public class MyLabel : Label
{
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
}
Dispose
您可以在方法中设置断点。
将字段的类型更改为MyLabel
并检查是否调用了该方法,并且在没有我显式调用它们或做任何事情的情况下调用它。
所以第三种方法是正确的——因为它们是作为Form
控件添加的,所以它们会自动被丢弃。
推荐阅读
- java - 根据语言创建 jcombobox 表单枚举
- php - fread 需要更多时间才能在 php 中获得响应
- c# - 从 MemoryStream 加载 C# 程序集:错误的 IL 格式。如何正确加载完全内存程序集?
- ms-access - 如何将计算字段添加到 MS Access 中的汇总数据
- javascript - jQuery 浮动图表。如何处理 jQuery AJAX 范围:在本地计算机上得到`$.plot is not a function`
- javascript - addEventListener() 不执行
- azure - Application Insights 可以离线使用吗
- sql - Oracle 不会返回所有行
- java - 如何使用 HQL 查询连接 2 个单独的表
- amazon-web-services - AWS 超级账本结构服务是否可用于印度孟买