如果我有一个自定义对话框窗口,每次都可以创建一个新窗口吗?

sto*_*ist 2 c# dialog

myDialog d = new myDialog(); 
d.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

一旦我的对话框处理了一些输入,我就做了

this.Close();
Run Code Online (Sandbox Code Playgroud)

从对话框类中.

然后回到我的主窗口,我检查一个变量ie

if (d.OK = true)
{
//do stuff
}
Run Code Online (Sandbox Code Playgroud)

如果在使用程序时会创建其中几个对话框,这样可以吗?或者我应该在我的主窗体上使用引用相同对话框的静态变量?这有什么不同吗?

Ste*_*eve 5

使用此模式,您的对话框将始终正确处理

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.....
     } 
}
Run Code Online (Sandbox Code Playgroud)

使用静态变量来保持从配置对话框(在这种情况下,你应该叫this.Hide()this.Close()就是,在我看来,一个不好的做法,除非你需要保持一个"状态条件"曲目或建议您的用户在他们的最后输入.当你关闭app时,你应该非常小心地关闭静态变量.