Windows窗体打开文件对话框,如果对话框已显示,则阻止打开实例

本文关键字:对话框 实例 显示 文件 窗体 Windows 如果 | 更新日期: 2023-09-27 18:36: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 次,对话框将弹出一次。关闭第一个对话框后,它将再显示两次。有什么方法可以检测对话框是否已经显示以防止弹出它打开?

编辑:我也在unity3d体验中使用它,利用System.Windows.Forms的Mono版本。正因为如此,实际上没有"拥有"对话框的形式,它是 Unity 游戏窗口。按下的按钮是游戏内的 GUI 元素。

谢谢

Windows窗体打开文件对话框,如果对话框已显示,则阻止打开实例

尝试:

Dialog.ShowDialog(this);

这里假设this是包含按钮的表单。 这应将对话框显示为模式,其中窗体作为其所有者阻止您激活或使用窗体上的控件,直到对话框被关闭。