我的类(class)有一个 OpenFileDialog 实例,就像这样。
public MyClass
{
public OpenFileDialog Dialog { get; set; }
public MyClass()
{
Dialog = new OpenFileDialog();
}
public void ShowDialog()
{
if (Dialog.ShowDialog() == DialogResult.OK)
{
DoStuff(Dialog.FileNames);
}
}
}
问题是,如果我多次点击按钮打开对话框,对话框只会弹出一次。关闭第一个对话框后,它会再显示两次。有什么方法可以检测对话框是否已显示以防止弹出对话框?
编辑:我也在使用 System.Windows.Forms 的 Mono 版本的 unity3d 体验中使用它。因此,真的没有“拥有”对话框的形式,它是统一游戏窗口。按下的按钮是游戏中的 GUI 元素。
谢谢
最佳答案
尝试:
Dialog.ShowDialog(this);
这里假设 this
是包含按钮的表单。这应该将对话框显示为带有表单的模态,因为它的所有者会阻止您激活或使用该表单上的控件,直到对话框被关闭。
关于c# - Windows 窗体 OpenFileDialog,如果对话框已经显示则阻止打开实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35726995/