Windows窗体的表单和文本框之间的Dispose方法的行为差异

时间:2010-09-05 10:48:26

标签: visual-studio

每当我在Windows窗体表单(从System.Windows.Forms.Form派生)上调用Dispose方法来关闭它时,Dispose方法通过释放资源并处理表单来最终确定。 / p>

我有像文本框这样的运行时对象,如下所示:

Textbox Tb = new Textbox();

用户可以动态创建新的文本框。我想要它,以便包含数据的文本框保持不变,并删除那些为null的文本框。当我在空文本框上调用Dispose方法时,在运行时看起来它们被处理掉了,但通常它们只是看不见。

所以:

  1. 在文本框中调用dispose方法与从Forms派生的类之间有什么区别?

  2. 为什么要在表格中处理表格,例如Form1.Dispose();,为什么运行时的文本框不能如下所示?

    if (tb.text=="")
        tb.Dispose();
    

1 个答案:

答案 0 :(得分:1)

据我了解,这是因为所有权。表单拥有控件,所以如果你处理控件,很好,你只需要刷新它。如果您丢弃表单本身,它就会消失,无需刷新。