2017-07-06 22 views
0

FolderBrowsingDialog不會加載下一個。我單獨嘗試了f1和f2,並向我顯示桌面文件夾。但是當我嘗試f1 & f2在一起。只有F1負載FolderBrowsingDialog不會打開下一個FolderBrowsingDialog

 public Form1() 
    { 
     InitializeComponent(); 

     FolderBrowserDialog f1 = new FolderBrowserDialog(); 
     FolderBrowserDialog f2 = new FolderBrowserDialog(); 

     f1.ShowNewFolderButton = true; 
     f2.ShowNewFolderButton = true; 

     f1.RootFolder = Environment.SpecialFolder.Desktop; 
     f2.RootFolder = Environment.SpecialFolder.Desktop; 

     //f1.Description = "Source"; 
     //f2.Description = "Destination"; 

     string folderPathCopy = string.Empty; 
     string folderPathPaste = string.Empty; 

     if (f1.ShowDialog() == DialogResult.OK) 
     { 
      folderPathCopy = f1.SelectedPath; 
     } 

     if (f2.ShowDialog() == DialogResult.OK)//Debugging stops here 
     { 
      folderPathPaste = f2.SelectedPath; 
     } 
    } 

的問題是,F2犯規運行。

+0

你有沒有*近*的第一個對話框? –

+0

他們是模態對話框......第二個應該打開一旦你關閉第一個。你是說它永遠不會打開第二個? –

+0

我在桌面上選擇了一個文件夾,然後按確定,然後f2不打開。 – Vincent

回答

0

移動代碼到 「中顯示」 事件:

 public Form1() 
     { 
     InitializeComponent(); 
     this.Shown += Form1_Shown; 

     } 

     private void Form1_Shown(object sender, EventArgs e) 
     { 
     FolderBrowserDialog f1 = new FolderBrowserDialog(); 
     FolderBrowserDialog f2 = new FolderBrowserDialog(); 

     f1.ShowNewFolderButton = true; 
     f2.ShowNewFolderButton = true; 

     f1.RootFolder = Environment.SpecialFolder.Desktop; 
     f2.RootFolder = Environment.SpecialFolder.Desktop; 

     //f1.Description = "Source"; 
     //f2.Description = "Destination"; 

     string folderPathCopy = string.Empty; 
     string folderPathPaste = string.Empty; 

     if (f1.ShowDialog() == DialogResult.OK) 
     { 
      folderPathCopy = f1.SelectedPath; 
     } 

     if (f2.ShowDialog() == DialogResult.OK)//Debugging stops here 
     { 
      folderPathPaste = f2.SelectedPath; 
     } 
     } 
+0

爲什麼會有所作爲? – DavidG

+0

試一試,它的確如此。我的猜測是,在表單的構造函數中調用UI是不正常的。 – Derek

+1

@DavidG它可能 - 在構造函數中調用ShowDialog時沒有* parent *形式。 –