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()
而不是 this.Close()
,在我的意见,这是一种不好的做法,除非您需要跟踪“状态条件”或向用户建议他们的最后输入。在关闭应用程序时,您还应该非常小心地关闭静态变量。
关于c# - 如果我有一个自定义对话框窗口,每次都可以创建一个新对话框吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11776836/