visual-studio - Windows 窗体的窗体和文本框的 Dispose 方法的行为差异

标签 visual-studio

每当我调用Dispose Windows 窗体窗体(派生自 System.Windows.Forms.Form)上的方法来关闭它,Dispose方法通过释放资源和处理表单来完成。

我有如下文本框之类的运行时对象:

Textbox Tb = new Textbox();

用户可以动态创建新的文本框。我想要它,以便那些包含数据的文本框保留下来,而那些为空的文本框将被删除。当我调用 Dispose空文本框上的方法,在运行时看起来它们已被释放,但通常它们只是不可见的。

所以:
  • 在文本框上调用 dispose 方法与从 Forms 派生的类有什么区别?
  • 为什么在调用时处理表单,例如Form1.Dispose(); ,为什么不在运行时的文本框如下?
    if (tb.text=="")
        tb.Dispose();
    
  • 最佳答案

    据我了解,这是因为所有权。表单拥有控件,因此如果您处理控件,很好,您只需要刷新它。如果您处理表单本身,它就消失了,没有什么可刷新的。

    关于visual-studio - Windows 窗体的窗体和文本框的 Dispose 方法的行为差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3645786/

    相关文章:

    c++ - Visual Assert 的范围问题

    c# - 引用项目中的命名空间在构建前出现在自动完成中,但在构建后导致编译错误

    .net - 在 Visual Studio 2019 中将警告视为构建错误,而不是智能感知

    .net - 在构建事件命令行中添加注释的正确方法?

    visual-studio - 是否可以在本地编译 Typescript 文件而不是在构建服务器上?

    c++ - 在 MS Visual C++ 中调试未处理异常的正确方法

    visual-studio-2010 - 单行格式化 CSS,在特定长度/列处换行

    c# - 如何在 Visual Studio 中找到 Team Foundation Server 的 url?

    c# - 在解决方案中的项目之间共享程序集

    c++ - Qt 与 Visual Studio 宏问题