C#里面有選擇文件的對話框控件,卻沒有選擇文件夾的對話框控件,不少人為了選擇一個文件夾只好自己用TreeView類來處理,其實在C#里面完全不用那么麻煩,我們可以用C#的FolderNameEditor類的子類FolderBrowser類來實現獲取瀏覽文件夾對話框的功能。
下面來看看具體是怎么實現的。
首先新建一個winform的項目,再新建一個類文件(File->AddNewItem->Class)。
因為FolderNameEditor是在System.Windows.Forms.Design命名空間下的,此命名空間位於動態鏈接庫system.design.dll,所以我們要先在解決方案中添加新的引用(reference)System.Design。然后在代碼中添加: using System.Windows.Forms.Design;
接着,我們新建一個FolderDialog類,此類從FolderNameEditor類繼承,在此類中新建一個FolderBrowser類的實例。DisplayDialog(string description)函數用於設置實例fDialog的屬性,並且顯示瀏覽文件夾對話框。為了取得文件夾的路徑,設置一個Path屬性,返回選取文件夾的路徑。
代碼如下: public class FolderDialog : FolderNameEditor{FolderNameEditor.FolderBrowser fDialog = newSystem.Windows.Forms.Design.FolderNameEditor.FolderBrowser();public FolderDialog(){}public DialogResult DisplayDialog(){return DisplayDialog("請選擇一個文件夾");} public DialogResult DisplayDialog(string description){fDialog.Description = description;return fDialog.ShowDialog();}public string Path{get{return fDialog.DirectoryPath;}}~FolderDialog(){fDialog.Dispose();}}
//在winform窗體里寫以下代碼,可以看看運行效果。 private void Form1_Load(object sender, System.EventArgs e) { FolderDialog aa=new FolderDialog (); aa.DisplayDialog (); MessageBox.Show (aa.Path); }