用C#獲取瀏覽文件夾對話框

我們知道,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 = new
System.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();
}
}


  利用這個新建的類,就可以顯示瀏覽文件夾對話框。

  在Form1中添加一個TextBox控件,在Form1的構造函數裏添加下面代碼:

FolderDialog openFolder = new FolderDialog();
if (openFolder.DisplayDialog()==DialogResult.OK)
	textBox1.Text=openFolder.Path.ToString();
else
	textBox1.Text="你沒有選擇目錄";


  運行這個工程,就會彈出如下的瀏覽文件夾對話框,是不是和Windows自帶的一摸一樣? 



  點擊確定之後會顯示你選擇的文件夾的路徑,點擊取消則顯示你沒有選擇目錄。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章