2014-08-27 2 views
0

폴더 경로 대화 상자 구성 요소를 사용하여 폴더 경로를 가져 오는 양식이 포함 된 C# 라이브러리가 있습니다. 사용자 지정 설치 관리자를 사용하여 응용 프로그램을 설치하는 동안 양식이 표시됩니다. 찾아보기 버튼을 클릭하면 폴더 브라우저 대화 상자가 표시됩니다. 대화 상자가 열렸지만 폴더 목록이 없으면 확인 및 취소 버튼과 함께 빈 대화 상자가 표시됩니다. 아래 코드를 사용하고 있습니다 :폴더 브라우저 대화 상자 구성 요소가 Windows 양식의 폴더 목록을 표시하지 않습니다.

이 문제는 어떻게 해결할 수 있습니까? 감사합니다

+1

"맞춤 설치 프로그램"은 분명히 골칫거리입니다. 진단 추가 : if (System.Threading.Thread.CurrentThread.GetApartmentState()! = System.Threading.ApartmentState.STA) MessageBox.Show ("비어있게됩니다"); –

답변

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