这段代码干净了吗?
private void button1_Click(object sender, EventArgs e) { frmCustomDialog f = new frmCustomDialog(); if(f.ShowDialog() == DialogResult.OK) TextBox1.Text = f.MyCustomProperty; }
您是否需要关闭或处理表格f或任何其他内容?还是自动垃圾收集?
谢谢.
是的,您应该处理以下表格:
private void button1_Click(object sender, EventArgs e) { using (frmCustomDialog f = new frmCustomDialog()) { if(f.ShowDialog() == DialogResult.OK) { TextBox1.Text = f.MyCustomProperty; } } }
ShowDialog()
不会丢弃表单,因为您可以重复使用并再次显示它.如果您不需要这样做,您应该自己处理它.
来自以下文件ShowDialog()
:
与无模式窗体不同,当用户单击对话框的关闭窗体按钮或设置DialogResult属性的值时,.NET Framework不会调用Close方法.而是隐藏表单,并且可以在不创建对话框的新实例的情况下再次显示该表单.因为显示为对话框的表单未关闭,所以当应用程序不再需要该表单时,必须调用表单的Dispose方法.