【发布时间】:2016-03-01 23:43:58
【问题描述】:
我的班级有一个 OpenFileDialog 实例,就像这样。
public MyClass
{
public OpenFileDialog Dialog { get; set; }
public MyClass()
{
Dialog = new OpenFileDialog();
}
public void ShowDialog()
{
if (Dialog.ShowDialog() == DialogResult.OK)
{
DoStuff(Dialog.FileNames);
}
}
}
问题是如果我点击按钮打开对话框 3 次垃圾邮件,对话框将弹出打开一次。一旦我关闭第一个对话框,它会再显示两次。有什么方法可以检测对话框是否已经显示以防止弹出它?
编辑:我也是通过使用 System.Windows.Forms 的 Mono 版本的 unity3d 体验来使用它的。因此,实际上并没有“拥有”对话框的形式,而是统一的游戏窗口。按下的按钮是游戏内的 GUI 元素。
谢谢
【问题讨论】:
-
嗯,这不应该发生。该对话框应禁用拥有该按钮的窗口,因此您无法再次单击它。非常不清楚这是怎么发生的,但是使用 ShowDialog(owner) 重载是相当重要的,因此您不要让班级来寻找所有者。它可能会选错一个,然后你就会遇到这个问题。