myDialog d = new myDialog();
d.ShowDialog();
一旦我的对话框处理了一些输入,我就会做一个
this.Close();
从对话框类中。
然后回到我的主窗口,我检查一个变量,即
if (d.OK = true)
{
//do stuff
}
如果在使用程序时会创建几个这样的对话框,这可以吗?或者我应该在我的主窗体上使用一个引用同一个对话框的静态变量?这有什么不同吗?
使用此模式,您的对话框将始终正确处理
using(myDialog d = new myDialog())
{
if(DialogResult.OK == d.ShowDialog())
{
//do stuff (for example, read some property values on the dialog)
if(d.ExecuteSomeAction == true)
// Do some action -> call a database query or something.....
}
}
使用静态变量来维护对话框的处理(在这种情况下,您应该调用this.Hide()
not this.Close()
,在我看来,这是一种不好的做法,除非您需要跟踪“状态条件”或向您的用户建议他们的最后输入。当您关闭应用程序时,您还应该非常小心地关闭静态变量。
一旦处理了一个表单就不能被重用,AFAIK。
你也可以考虑这个:
using (myDialog d = new myDialog())
{
d.ShowDialog();
if (d.OK)
{
// do stuff
}
}
在最后一个大括号之后,您确定您的对话框被正确处理并且所有内存都被释放。像这样,您可以随心所欲地使用对话框。使用 ausing
是一种很好的做法,可用于实现IDisposable
接口的所有对象。
请参阅使用语句。