2011-12-06 47 views
21

我知道如果在顯示對話框之前設置了SelectedPath,我可以在對話框打開時默認打開一個文件夾。但是,我想要使用的文件夾按字母順序非常靠後。我有一個與Windows中的庫相同的文件夾,它顯示在列表中,是否有任何方法將它默認爲文件夾的庫版本而不是文件夾的硬盤版本?是否有可能使FolderBrowserDialog的默認路徑顯示在庫中而不是實際的磁盤上?

另一個可能的解決方案是,如果它仍然使用驅動器版本,但它會自動將窗口向下滾動到選定的位置。有沒有辦法做這些解決方案?


目前它是如何顯示出來

enter image description here

我怎麼想它展現出來

enter image description here

+0

如果這個問題是關於自動滾動,你可以任一類型的標籤 - 標籤 - RIGHTARROW或程序,請參閱:http://stackoverflow.com/a/29691834/1845672 – Roland

回答

6

使用Reset()調用。這將使其自動滾動。

 string prevpath = folderBrowserDialog1.SelectedPath; 
     folderBrowserDialog1.Reset(); 
     folderBrowserDialog1.SelectedPath = bc.myWorkingDir; 
     folderBrowserDialog1.ShowNewFolderButton = true; 

     DialogResult dr = folderBrowserDialog1.ShowDialog(); 
     if (dr == DialogResult.OK || dr == DialogResult.Yes) 
     { 
      bc.myWorkingDir = folderBrowserDialog1.SelectedPath; 
     } 
     folderBrowserDialog1.SelectedPath = prevpath; 
+0

沒有爲我工作。 'Reset()'調用消除了Designer中的設置。 – Roland

+0

它適用於我,thx – monstr

0

只需設置路徑庫\ VetCentric ... 前你打開應該這樣做我想。

17

設置你的根文件夾並選擇路徑,例如,它會在對話開幕那裏爲您自動滾動:

FolderBrowserDialog dlg = new FolderBrowserDialog(); 
dlg.RootFolder = Environment.SpecialFolder.MyComputer; 
dlg.SelectedPath = @"E:\Vetcentric"; 
dlg.ShowDialog(); 

enter image description here

您遇到的問題是,如果您在選擇位於庫層次結構中的文件夾後觀察屬性分配,它仍然會將其分配給它到通過我的電腦獲得的基因路徑。

+1

有趣的是,用設計師設置'RootFolder'和'SelectedPath'它選擇文件夾並展開樹,但它不會自動滾動到窗口。將這兩行代碼從設計器中移出並傳入我的構造函數中,使其執行了我所需的行爲。謝謝! –

+1

另一個讀給此人的信息是,如果你選擇一個路徑,按OK,然後再次打開該對話框,它將使文件夾被選中,但不會再次自動滾動。 –

+0

@Scott Chamberlain:就像你說的,這個解決方案只在第一次打開對話框的時候才起作用。有沒有人有更好的解決方案? – itsho

相關問題