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(所有者)重載是非常重要的,所以您不要將它留給該類來找到所有者。它可能會選擇錯誤的,然後你有這個問題。 –