1
我的班上有一个OpenFileDialog实例,就像这样。Windows窗体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次,对话框会弹出一次。一旦我关闭了第一个对话框,它会再显示两次。有没有什么方法可以检测到对话框是否已经显示,以防止弹出对话框?
编辑:我也使用这从unity3d体验利用单一版本的System.Windows.Forms。因此,确实没有一个形式的“拥有”对话框,它是统一游戏窗口。推送的按钮是游戏内的GUI元素。
感谢
那么,这不应该发生。该对话框应该禁用拥有该按钮的窗口,以便您不能再次单击它。非常不清楚发生了什么,但使用ShowDialog(所有者)重载是非常重要的,所以您不要将它留给该类来找到所有者。它可能会选择错误的,然后你有这个问题。 –