Windows 窗體的 OpenFileDialog(打開文件對話框)組件是一個預先配置的對話框。它與 Windows 操作系統的“打開文件”對話框相同。該控件是從 CommonDialog 類繼承的。在基於 Windows 的應用程序中,可該組件實現簡單的文件選擇,而不必配置自己的對話框。利用標准的 Windows 對話框,可以創建用戶所熟悉的應用程序界面。
一、OpenFileDialog 組件的主要屬性包括:
1 、 Title 屬性:獲取或設置文件對話框標題。默認值為空字符串("")。
如果標題為空字符串,系統將使用默認標題“打開”。
2 、 Multiselect 屬性:獲取或設置一個值,該值指示對話框是否允許選擇多個文件。
如果對話框允許同時選定多個文件,則為 true;反之,則為 false。默認值為 false。使用 FileNames 屬性可訪問選定文件名的完整列表。
3、 ShowReadOnly 屬性:獲取或設置一個值,該值指示對話框是否包含只讀復選框。
如果對話框包含只讀復選框,則為 true;否則為 false。默認值為 false。
4、 ReadOnlyChecked 屬性:獲取或設置一個值,該值指示是否選定只讀復選框。
如果選中了只讀復選框,則為 true;反之,則為 false。默認值為 false。
5、 Filter 屬性:獲取或設置當前文件名過濾字符串,該字符串決定對話框的“文件類型”框中出現的選擇內容。
對於每個過濾選項,過濾字符串都包含過濾條件說明,后接一垂直線條(|)和過濾模式。不同過濾選項的字符串由垂直線條隔開。
例如:"Text files (*.txt)|*.txt|All files (*.*)|*.*"。如果要將多個過濾模式添加到過濾條件中,可用分號將文件類型分隔開,例如:
"Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*"使用 FilterIndex 屬性設置第一個顯示給用戶的過濾選項。
6、 FilterIndex 屬性:獲取或設置文件對話框中當前選定過濾條件的索引。默認值為 1。第一個過濾條目的索引值為 1。
7、 FileName 屬性:獲取或設置一個包含在文件對話框中選定的文件名的字符串。也就是在對話框中選擇的文件名,默認值為空字符串("")。
文件名既包含文件路徑也包含擴展名。如果未選定文件,將返回空字符串。
8、 FileNames 屬性:獲取對話框中所有選定文件的文件名。
屬性值是一個 String 類型數組。每個文件名都既包含文件路徑又包含文件擴展名。如果未選定文件,該方法將返回空數組。
9、 InitialDirectory屬性:獲取初始化路徑。
二、OpenFileDialog組件的主要方法包括:
1 、ShowDialog() 方法:在運行時顯示對話框。
2、 OpenFile() 方法:打開用戶選定的具有只讀權限的文件,該文件由 FileName 屬性指定。
使用該方法可從對話框以只讀方式快速打開文件。
下面的實例簡單介紹了如何使用打開文件對話框(OpenFileDialog)組件來選擇文件的編程技術,具體步驟如下:
(1) 啟動VS2012,新建一個C# Windows應用程序項目
(2) 在程序設計窗體中添加兩個個Label控件,分別設置其Text屬性為“FilePath”、“FileName”;再添加一個TextBox控件,保留其默認屬性即可;再添加一個Button控件,設置其Text屬性為“Open Files”。調整窗體和控件的大小以適合窗口。如下所示:
(3) 為Button控件(Open Files)的鼠標單擊(Click)事件添加如下代碼:

1 OpenFileDialog openfiledialog = new OpenFileDialog();//聲明並初始化openfiledialog類 2 openfiledialog.InitialDirectory = @"E:\";//設置文件打開初始目錄為E盤 3 openfiledialog.Title = "打開文本文件";//設置打開文件對話框標題 4 openfiledialog.Filter = "All Files(*.*)|*.*|txt Files(*.txt)|*.txt";//設置文件過濾類型 5 openfiledialog.FilterIndex = 2;//根據文件類型索引設置文件過濾類型 6 openfiledialog.RestoreDirectory = true;//設置對話框是否記憶之前打開的目錄 7 if (openfiledialog.ShowDialog() == DialogResult.OK)//當點擊文件對話框的確定按鈕時打開相應的文件 8 { //並執行如下語句塊 9 tbfilepath.Text = openfiledialog.FileName;//獲取選擇文件的完整路徑名(含文件名稱) 10 tbfilename.Text = tbfilepath.Text.Substring(tbfilepath.Text.LastIndexOf("\\")+1); 11 } //獲取選擇文件的完整文件名(不含路徑)
(4)運行實例程序,單擊“選擇文件”按鈕將彈出您熟悉的Windows“打開”對話框,選擇文件后,文件名稱和文件路徑將顯示在窗體的文本框中。