2015-01-04 42 views
-1

我想做一個文件夾選擇,如果選定的驅動器上沒有足夠的空間將顯示一個錯誤。我創建了一個自定義設計的錯誤和對話框窗體,但使用FolderBrowserDialog存在問題。沒有重點放在FolderBrowserDialog.ShowDialog()後的其他窗體()

這裏是我的實際代碼:

frmDialog dialog = new frmDialog("Install software", "The software cannot be found. Please select the path of the executable or let the launcher install it for you."); 
dialog.SetYesButtonText("Install software"); 
dialog.SetNoButtonText("Browse for executable..."); 

if (dialog.ShowDialog() == DialogResult.Yes) 
{ 
    fbd = new FolderBrowserDialog(); 
    fbd.Description = "Please select where do you want to install the software!"; 
    DialogResult result = fbd.ShowDialog(); 

    if (result == DialogResult.OK) // + space checking, but I deleted it for debugging now. 
    { 
      frmError error = new frmError("Not enough space", "Please select a folder with at lease 22 MB of free space."); 
      error.ShowDialog(); 
     } 
} 

我,實際上使一個循環之後將持續到用戶選擇有足夠空間的一個文件夾或取消選擇。

問題是錯誤對話框沒有得到任何焦點。因此,當用戶選擇文件夾時,FolderBrowserDialog消失,錯誤對話框出現在新窗口中,但Visual Studio的窗口獲取焦點而不是錯誤對話框。正如我經歷的那樣,這個問題並不存在於我自己的形式中,所以如果我將fdb更改爲frmDialog,則所有三個對話框都將以焦點出現在彼此之後。

+0

是否要保持「FolderBrowserDialog」窗口打開並顯示錯誤對話框? – dotctor

回答

2

這樣設置對話框的所有者:

fbd.ShowDialog(dialog); 
error.ShowDialog(dialog); 

我建議設置其他對話框的所有者設置父子關係。所以當你關閉父窗體時,子窗體關閉到。如果您使用ShowDialog來電,還可以在表單上放置一個using區塊。

+0

謝謝,在添加到兩個對話框之後,它工作。 – TMS

相關問題