2017-06-15 43 views
0

ユーザーが作業ディレクトリを選択できるようにするために、FolderBrowserDialog(VB Express 2013)を使用しようとしています。私は多くの例(すべて非常に似ている)を見つけましたが、物事はうまくいかないようです。
マイコード:VBのFolderBrowserDialogはディレクトリツリーを展開しません

Sub TestIt() 
    Dim dlgChooseFolder As New FolderBrowserDialog 
    Dim dr As DialogResult 
    dlgchoosefolder.Description = _ 
     "Select the directory that you want to use As the default." 

    ' Default to the My Documents folder. 
    dlgChooseFolder.RootFolder = Environment.SpecialFolder.Personal 
    'dlgChooseFolder.SelectedPath = "c:\users\mary\Documents\WebStuff" 
    dr = dlgChooseFolder.ShowDialog 
    If (dr = DialogResult.OK) Then 
     Debug.Print("dr = OK" & vbCrLf & dlgChooseFolder.SelectedPath) 
    Else 
     Debug.Print("dr <> OK") 
    End If 
End Sub 

ダイアログが表示されますが、ツリー内の唯一のエントリは、「ドキュメント」であり、そのサブディレクトリを表示するために展開されません。 ShowDialogの前に明示的にSelectedPathプロパティを設定しても、常にRootFolderにリセットされます。 FolderBrowserDialog

誰でも助けることができます:

ここで表示されるダイアログボックスはありますか?私は間違って何をしていますか?

おかげで、
マーブル

+0

'dlgChooseFolder.RootFolder = Environment.SpecialFolder.Personal'行を削除するとどうなりますか? –

+0

私は3つの異なるマシンで同じことを試みましたが、私は同じ動作を見ます。最初の2人はDocumentsフォルダの場所を変更していたので問題はあるかもしれないと思ったが、3人目は同じように振る舞いませんでした。 Musicフォルダも同じことをしましたが、上記のレベル、つまり「SpecialFolder.UserProfile」が正常に機能しました。これがWindows 10の問題かどうか疑問に思う。私は古いバージョンでこれを見ることは思い出せませんが、私はこれまでにドキュメントに 'RootFolder'を設定したことは確かではありません。 – jmcilhinney

+0

明示的に設定されていない場合、RootFolderのデフォルトはデスクトップです。ディレクトリツリーは正しく機能しますが、ユーザーは選択したくないフォルダを選択できます。あなたはWindows 10の質問に何かをするかもしれません。このコードは数年前に正しく機能しました。 – Mable

答えて

0

私はこれは、Windows 10の問題である95%確信しています。私は.RootFolderをEnvironment.SpecialFolder列挙の59人のメンバーすべてに設定しました。それらのうちのいくつかはディレクトリツリーを表示します。多くはしません。 MyDocumentsも個人的な仕事もありません。私の目的に最も適した値はMyComputerです。もう1つの選択肢は、 "あなた自身のロール"と思われる。

関連する問題