2014-08-27 46 views
0

我有一個C#庫,其中包含我在其中使用文件夾瀏覽器對話框組件獲取文件夾路徑的窗體。 表單在使用自定義安裝程序安裝我的應用程序期間顯示。 當點擊瀏覽按鈕顯示文件夾瀏覽器對話框。對話框已打開,但沒有文件夾列表,空白對話框顯示爲「確定」和「取消」按鈕。我正在使用以下代碼:文件夾瀏覽器對話框組件沒有顯示窗體中的文件夾列表

FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); 
folderBrowserDialog.RootFolder = Environment.SpecialFolder.MyComputer; 
if (folderBrowserDialog.ShowDialog() == DialogResult.OK) 
{ 
    txtDBPath.Text = folderBrowserDialog.SelectedPath; 
    btnSelectFile.Enabled = true; 
} 

我該如何解決此問題。謝謝

+1

「自定義安裝程序」肯定是麻煩的。添加一個診斷:if(System.Threading.Thread.CurrentThread.GetApartmentState()!= System.Threading.ApartmentState.STA)MessageBox.Show(「它將是空的」); – 2014-08-27 09:41:44

回答

0

我解決了這個問題。

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    Try 
     Dim MyThread As New Threading.Thread(AddressOf ShowMyFolderBrowserDialog) 
     MyThread.SetApartmentState(Threading.ApartmentState.STA) 
     MyThread.Start() 
    Catch ex As Exception 
     MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Setup") 
    End Try 
End Sub 

Private Sub ShowMyFolderBrowserDialog() 
    Try 
     Me.FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.MyComputer 
     Me.FolderBrowserDialog1.Description = "Select folder" 
     If System.IO.Directory.Exists(Me.TextBox1.Text) Then 
      Me.FolderBrowserDialog1.SelectedPath = Me.TextBox1.Text 
     End If 
     If Me.FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then 
      Me.TextBox1.Text = Me.FolderBrowserDialog1.SelectedPath 
     End If 
    Catch ex As Exception 
     MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Setup") 
    End Try 
End Sub 
相關問題