2017-06-15 21 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

我只是在三臺不同的機器上試過同樣的事情,我看到了相同的行爲。前兩個文檔文件夾的位置發生了變化,所以我認爲這可能是問題,但第三個沒有,並且行爲方式相同。音樂文件夾也做了同樣的事情,但上面的級別,即'SpecialFolder.UserProfile'工作,因爲它應該。我想知道這是否是Windows 10的問題。我不記得在舊版本中看到這一點,但我不確定我是否曾在任何一個之前將'RootFolder'設置爲Documents。 – jmcilhinney

+0

如果未明確設置RootFolder,則默認爲桌面。目錄樹工作正常,但允許用戶選擇我不希望他們選擇的文件夾。您可能會遇到Windows 10問題。這個代碼幾年前運行正常。 – Mable

回答

0

我95%肯定這是Windows 10的問題。我已將.RootFolder設置爲Environment.SpecialFolder枚舉的所有59個成員。其中一些顯示目錄樹;許多人沒有。我的文檔和個人都無法工作。最適合我用途的價值是MyComputer。另一種選擇似乎是「滾動你自己」。