分析C#中Dialog控件

對話框是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 + "\n";
                }
                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
 獲取或設置用戶可選擇的最大磅值。
 
MinSize
 獲取或設置用戶可選擇的最小磅值。
 
ScriptsOnly
 示對話框是否允許爲所有非指
 
ShowApply
 指示對話框是否包含"應用"按鈕。
 
ShowColor
 指示對話框是否顯示顏色選擇。
 
ShowEffects
 指示對話框是否包含允許用戶指定刪除線、下劃線和文本顏色選項的控件。
 
ShowHelp
 指示對話框是否顯示"幫助"按鈕。
 
 
  四.顏色選擇對話框:
 C#中創建顏色選擇對話框是通過ColorDialog類,ColorDialog類結構最爲簡單,具體如下表所示:
屬性
 說明
 
AllowFullOpen
 指示用戶是否可以使用該對話框定義自定義顏色。
 
AnyColor
 指示對話框是否顯示基本顏色集中可用的所有顏色。
 
Color
 獲取或設置用戶選定的顏色。
 
CustomColors
 獲取或設置對話框中顯示的自定義顏色集。
 
FullOpen
 指示用於創建自定義顏色的控件在對話框打開時是否可見。
 
ShowHelp
 指示在顏色對話框中是否顯示"幫助"按鈕。
 
SolidColorOnly
 指示對話框是否限制用戶只選擇純色。
 
 五.打印機設置對話框:
  C#中創建打印機設置對話框是通過PrintDialog類,下表是PrintDialog類的常用屬性及其說明:
屬性
 說明
 
AllowPrintToFile
 指示是否啓用"打印到文件"複選框。
 
AllowSelection
 獲取或設定一個值,指示是否啓用了頁碼範圍選項按鈕。
 
AllowSomePages
 指示是否啓用"頁"選項按鈕。
 
Document
 獲取或設置一個值,指示用於獲取
 
PrinterSettings
 獲取或設置該對話框要修改的
 
PrintToFile
 指示"打印到文件"複選框是否選中。
 
ShowHelp
 指示是否顯示"幫助"按鈕。
 
ShowNetwork
 指示是否顯示"網絡"按鈕。
 
 
  六.打印預覽對話框:
  C#中創建打印機預覽對話框是通過PrintPreviewDialog類,打印機預覽對話框其實也可以看成是一個窗體,因爲它擁有做爲一個窗體所擁有的所有屬性,所以PrintPreviewDialog類是本文介紹的所有類中最爲複雜的一個。下表是和打印預覽對話框最爲相關的屬性及其說明:
屬性
 說明
 
AcceptButton
 獲取或設置當用戶按
 
DataBindings
 爲該控件獲取數據綁定。
 
DialogResult
 獲取或設置窗體的對話框結果。
 
Document
 獲取或設置要預覽的文檔。
 
Enabled
 指示是否啓用該控件。
 
FormBorderStyle
 獲取或設置窗體的邊框樣式。
 
Height
 獲取或設置控件的高度。
 
HelpButton
 指示是否應在窗體的標題框中顯示"幫助"按鈕。
 
Icon
 獲取或設置窗體的圖標。
 
MaximizeBox
 指示是否在窗體的標題欄中顯示最大化按鈕。
 
MaximumSize
 獲取或設置窗體可調整到的最大大小。
 
MinimizeBox
 指示是否在窗體的標題欄中顯示最小化按鈕。
 
MinimumSize
 獲取窗體可調整到的最小大小。
 
Name
 獲取或設置控件的名稱。
 
OwnedForms
 獲取
 
ShowInTaskbar
 指示是否在
 
Size
 獲取或設置窗體的大小。
 
StartPosition
 獲取或設置運行時窗體的起始位置。
 
TabIndex
 獲取或設置在控件的容器的控件的
 
TopMost
 指示窗體是否應顯示爲應用程序的最頂層窗體。
 
Visible
 指示該控件是否可見。
 
Width
 獲取或設置控件的寬度。
 
WindowState
 獲取或設置窗體的窗口狀態。
 
 
  下列代碼在C#中定製一個打印預覽對話框:
在 “打印預覽” 的單擊事件裏寫:
this.printPreviewDialog1.Document = this.printDocument1;
            printPreviewDialog1.ShowDialog();
 

  下圖是上述代碼定製的打印預覽對話框的模樣:

 七.具體的使用方法:
  至此已經介紹了這六個類的組成結構和大致的用法,下面就通過編寫一個完成的示例來更深入的掌握這些類的使用方法。在下面介紹的示例中,將使用到前面介紹的四個類,這個示例的功能是通過文件選擇對話框打開文本文件,並通過文本框來顯示文本文件的內容,使用字體對話框來設定文本框中的字體和前景色,使用顏色對話框來設定文本對話框的背景色。最後使用文件保存對話框把修改的文本框中的文字另存爲一個文本文件。通過對這個示例,我們將更深入的掌握Visual Basic .Net中對話框的使用方法,以下是此示例的具體實現步驟:
  1. 啓動C#
  2. 選擇菜單【文件】|【新建】|【項目】後,彈出【新建項目】對話框。
  3. 將【項目類型】設置爲【C# 項目】。
  4. 將【模板】設置爲【Windows應用程序】。
  5. 在【名稱】文本框中輸入【全面掌握對話框】。
  6. 在【位置】的文本框中輸入【E:\ C#項目】,然後單擊【確定】按鈕,這樣在"E:\ C#項目"目錄中就產生了名稱爲"全面掌握對話框"的文件夾,裏面存放的是創建的"全面掌握對話框"的項目文件。
  7. 把C#的當前窗口切換到【Form1. C#(設計)】窗口,並從【工具箱】中的【Windows窗體組件】選項卡中按照如下順序往Form1窗體中拖入下列組件:
  一個TextBox組件,名稱爲TextBox1,用以顯示、編輯文本文件。
  四個Button組件,名稱分別爲Button1、Button2、Button3和Button4。程序中通過其Click事件分別實現設定文本框的字體、顏色和讀取、保存文本等操作。
  一個SaveFileDialog組件,名稱爲SaveFileDialog1,用以創建文件保存對話框。
  一個OpenFileDialog組件,名稱爲OpenFileDialog1,用以創建文件打開對話框。
  一個FontDialog組件,名稱爲FontDialog1,用以創建字體對話框。
  一個ColorDialog組件,名稱爲ColorDialog,用以創建顏色對話框。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章