分析C#中Dialog控制元件

pamxy發表於2013-10-16

轉自:http://www.cnblogs.com/lvcha/archive/2010/11/02/1867643.html

對話方塊是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,用以建立顏色對話方塊。


相關文章