對話框是Widows系統中的一種用來和使用者實現交互的特殊窗口。在Windows系統中,常見的對話框,根據使用方式和性質一般分成以下六種類型:文件打開對話框、文件保存對話框、字體選擇對話框、顏色選擇對話框和打印機設置對話框和文件打印預覽對話框。至於這六個對話框的在Windows系統的表現形式和所起的具體作用,我想各位一定都很清楚了,這裡也就不一一介紹了。
首先要明確的是C#語言本身並沒有提供處理對話框的功能,所以C#處理對話框就必須借助"外力",而這種"外力"就是.Net框架提供給所有開發.Net平台應用程序的一個公用的類庫--.Net FrameWork SDK。在.Net FrameWork SDK中的命名空間System.Windows.Forms中定義了六個類:OpenFileDialog類、SaveFileDialog類、FontDialog類、ColorDialog類、PrintPreviewDialog類和PrintDialog類。C#就是使用上述六個類來處理與對話框相關的操作的。其中C#利用OpenFileDialog類來處理與文件選擇對話框相關操作;利用SaveFileDialog類處理和文件保存對話框相關操作;利用FontDialog類處理和字體選擇對話框相關操作;利用ColorDialog類處理和顏色選擇對話框相關操作;利用PrintPreviewDialog類處理和打印預覽對話框相關操作和利用PrintDialog類處理和打印機設置對話框相關操作。
C#在使用上述六種類來處理Windows系統常見的六種對話框時,其主要的步驟如下:
1. 實例化上述類,即:創建上述類的實例。
2. 初始化創建的實例,並顯示。
3. 處理對話框返回的數據。
下面首先來介紹這六個類的組成結構。這六個類在結構上有相似之處,表現在某些類有很多名稱、作用相同的組成成員。另外這六個類的方法結構都比較簡單,其中最為重要的方法是"ShowDialog",其作用是都是顯示對話框。
一.文件選擇對話框:
在C#中創建的文件選擇對話框其實就是OpenFileDialog類的實例。通過對設定
OpenFileDialog類的屬性來定制文件選擇對話框的式樣和功能。OpenFileDialog類的主要屬性如下表:
屬性
說明
AddExtension
該值指示如果用戶省略擴展名對話框是否自動在文件名中添加擴展名。
CheckFileExists
該值指示如果用戶指定不存在的文件名對話框是否顯示警告。
CheckPathExists
該值指示如果用戶指定不存在的路徑對話框是否顯示警告。
DefaultExt
獲取或設置默認文件擴展名。
DereferenceLinks
該值指示對話框是否返回快捷方式引用的文件的位置或者是否返回快捷方式
FileName
字符串,獲取或設置一個包含在文件對話框中選定的文件名的字符串。
FileNames
字符串數組,獲取對話框中所有選定文件的文件名。
Filter
字符串,獲取或設置當前文件名篩選器字符串該字符串決定對話框的"另存為文件類型"或"文件類型"框中出現的選擇內容。
FilterIndex
整型,獲取或設置文件對話框中當前選定篩選器的索引。
InitialDirectory
字符串,獲取或設置文件對話框顯示的初始目錄。
Multiselect
布爾型,該值指示對話框是否允許選擇多個文件。
ReadOnlyChecked
布爾型,該值指示是否選定只讀復選框。
RestoreDirectory
布爾型該值指示對話框在關閉前是否還原當前目錄。
ShowHelp
布爾型,該值指示文件對話框中是否顯示"幫助"按鈕。
ShowReadOnly
布爾型,該值指示對話是否包含只讀復選框。
Title
字符串,獲取或設置文件對話框標題。
C#通過調用OpenFileDialog類實例的ShowDialog方法顯示創建的實例,這樣一個文件選擇對話框就顯示出來了。
下列代碼的作用在C#中通過創建一個OpenFileDialog實例,並設定此實例的各個屬性值,來定制一個可以選擇多個文件的文件選擇對話框,並且把使用此對話框選擇的多個文件名稱通過提示框顯示出來。請各位讀者注意具體的實現方法:
DialogResult d = openFileDialog1.ShowDialog();
if (d == DialogResult.OK)
{
string[] fileNames = openFileDialog1.FileNames;
string fileNameString = string.Empty;
foreach (string s in fileNames)
{
fileNameString = fileNameString + s + " ";
}
MessageBox.Show(fileNameString);
}
下圖是上述代碼定制的打開文件對話框的模樣:
下圖是上述程序中以提示框顯示經過下圖中所示的文件選擇對話框選擇的數據,即選擇的多個文件名稱:
二.文件保存對話框:
C#中創建文件保存對話框是使用SaveFileDialog類,SaveFileDialog類的結構OpenFileDialog類的結構非常相似。下表是SaveFileDialog類的主要屬性及其說明:
屬性
說明
AddExtension
該值指示如果用戶省略擴展名,對話框是否自動在文件名中添加擴展名。
CheckFileExists
該值指示如果用戶指定不存在的文件名,對話框是否顯示警告。
CheckPathExists
該值指示如果用戶指定不存在的路徑,對話框是否顯示警告。
CreatePrompt
該值指示如果用戶指定不存在的文件,對話框是否提示用戶允許創建該文件。
DefaultExt
獲取或設置默認文件擴展名。
DereferenceLinks
該值指示對話框是否返回快捷方式引用的文件的位置,或者是否返回快捷方式
FileName
獲取或設置一個包含在文件對話框中選定的文件名的字符串。
FileNames
獲取對話框中所有選定文件的文件名。
Filter
獲取或設置當前文件名篩選器字符串,該字符串決定對話框的"另存為文件類型"或"文件類型"框中出現的選擇內容。
FilterIndex
獲取或設置文件對話框中當前選定篩選器的索引。
InitialDirectory
獲取或設置文件對話框顯示的初始目錄。
OverwritePrompt
該值指示如果用戶指定已存在的文件名,"另存為"對話框是否顯示警告。
RestoreDirectory
該值指示對話框在關閉前是否還原當前目錄。
ShowHelp
該值指示文件對話框中是否顯示"幫助"按鈕。
Title
獲取或設置文件對話框標題。
三.字體選擇對話框:
C#中創建字體選擇對話框是通過FontDialog類,FontDialog類結構也不復雜,和上面介紹的二個類也有很多相似之處,具體如下表所示:
屬性
說明
AllowScriptChange
指示用戶能否更改
AllowSimulations
指示對話框是否允許圖形設備接口
AllowVectorFonts
指示對話框是否允許選擇矢量字體。
AllowVerticalFonts
指示對話框是既顯示垂直字體又顯示水平字體,還是只顯示水平字體。
Color
獲取或設置選定字體的顏色。
FixedPitchOnly
指示對話框是否只允許選擇固定間距字體。
Font
獲取或設置選定的字體。
FontMustExist
指示對話框是否指定當用戶試圖選擇不存在的字體或樣式時的錯誤條件。
MaxSize
獲取或設置用戶可選擇的最大磅值。
MinS