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

标签 c# dialog

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/

相关文章:

javascript - knockout 映射 c# 模型到 knockout 模型,将 C# 代码解析为 json 不起作用

android - 对话框在android中 move ?

c# - ReportProgress C# 问题

c# - 动态创建的锯齿状矩形阵列

typescript - 带有计时器的对话框

android - TalkBack,在转到警报对话框(或)替代警报对话框时不说 "alert"

android - 在显示 DialogFragment 时禁用基础 View 上的触摸事件

android - 如何避免在按下搜索按钮时关闭 DialogFragment - Android

c# - 如何在 C# Windows 窗体应用程序 (CTRl + alt +Del) 上捕获键盘笔画

c# - Entity Framework 6 Create() 与 new