说我想开一个新表格..
TestForm test = new TestForm();
关闭它的好方法是什么?更确切地说,只是调用close()确定? 我应该使用using(){}来调用dispose()吗?最后,假设有 一个对话框应该只打开一个对话框的实例,有一个 好“已知”的模式?我有不同的选择,比如将它存放在静态场中, 并且在关闭时将其“清空”..
谢谢
答案 0 :(得分:4)
当对象实现using
时,最好使用IDisposable
。这仅适用于模态对话框:
using (TestForm test = new TestForm())
{
....
}
它在句法上等同于try{}finally{}
块,因此即使在花括号内抛出异常,也会在对象上调用Dispose()
。
答案 1 :(得分:1)
就单个实例对话框而言(如果它是模态的,您不必担心),您可以将构造函数设为私有,并提供一个公共静态方法来访问表单。
public class MyForm : Form
{
protected MyForm()
{
}
protected int MyValue { get; set; }
public static int GetResult()
{
using(MyForm myForm = new MyForm())
{
if(myForm.ShowDialog == DialogResult.OK)
return myForm.MyValue;
}
return -1;
}
}
这会强制以...形式发出呼叫。
int someValue = MyForm.GetResult();