使用CommonDialog控件
CommonDialog控制項提供一組開啟和儲存檔案、設定列印選項、選擇顏色和字型等操作的標準對話方塊。執行Windows幫助引擎時,控制也能夠顯示幫助。
CommonDialog控制項在VisualBasic和MicrosoftWindows動態連線庫Commdlg.dll例程之間提供了介面。為了用該控制項建立對話框,必須要求Commdlg.dll在MicrosoftWindows/System目錄下。
為了在應用程式中使用CommonDialog控件,應將其新增至窗體上並設定屬性。控制項顯示的對話由控制項的方法決定。執行時,呼叫對應方法後將顯示對話方塊或執行幫助引擎;設計時在窗體上將CommonDialog控制項顯示成圖示。此圖示的大小不能改變。
CommonDialog控制項可以顯示下列常用對話方塊:
“打開”
“另存為”
“顏色”
“字體”
"列印"
若要使用CommonDialog控件
1.若未新增CommonDialog控件,則應從“工程”選單中選定“部件”,將控件新增至工具箱。在標記對話的“控件”中找到並選定控件,然後按一下“確定”按鈕。
2.按一下工具箱中的「CommonDialog」控制項並在窗體上繪製該控制項。在窗體上繪製CommonDialog控制項時,控制項會自動調整大小。象Timer控制一樣,CommonDialog控制在執行時不可見。
3.運行時,請適當使用下表所列方法顯示所需的對話。
顯示“開啟”和“另存為”對話框
有了「開啟」對話方塊就可指定磁碟機、目錄、檔案副檔名和檔案名稱。 「另存為」對話方塊在外觀上與「開啟」對話方塊相同,只是對話方塊的標題和檔案名稱是暗淡的。執行時間選定檔案並關閉對話方塊後,可用FileName屬性取得選定的檔案名稱。
若要顯示「開啟」對話框
1.指定在「文件類型」列錶框中顯示的文件過濾器清單。
可用下列格式設定Filter屬性:
description1|filter1|description2|filter2...
Description是列錶框中顯示的字串-例如,TextFiles(*.txt)。 Filter是實際的檔案過濾器─—例如,*.txt。每個description|filter設定間必須用管道符號分隔(|)。
2.用ShowOpen方法顯示對話框。
選定檔案後可用FileName屬性取得選定檔案的名稱。
對所有公用對話框,當CancelError屬性為True,而且使用者點選了對話框的「取消」按鈕時將產生錯誤。在顯示對話方塊時擷取錯誤,以此偵測是否按了「取消」按鈕。
下列程式碼顯示「開啟」對話方塊並以選定的檔案名稱開啟檔案過程的參數:
PRivateSubmnuFileOpen_Click()
'CancelError為True。
OnErrorGoToErrHandler
'設定過濾器。
CommonDialog1.Filter=AllFiles(*.*)|*.*|Text_
Files(*.txt)|*.txt|BatchFiles(*.bat)|*.bat
'指定缺省過濾器。
CommonDialog1.FilterIndex=2
'顯示“開啟”對話框。
CommonDialog1.ShowOpen
'呼叫開啟檔案的過程。
OpenFile(CommonDialog1.FileName)
ExitSub
ErrHandler:
'使用者按下「取消」按鈕。
ExitSub
EndSub
使用“顏色”對話框
可用「顏色」對話方塊在調色板中選擇顏色,或建立並選定自訂顏色。運行時,選定顏色並關閉對話方塊後可用Color屬性以取得選定的顏色。
若要顯示“顏色”對話框
1.將CommonDialog控制項的Flags屬性設定成VisualBasic常數cdlCCRGBInit。
2.用ShowColor方法顯示對話框。
可用Color屬性取得選定顏色的RGB值。當您按一下「Command1」命令按鈕時,下列程式碼將顯示「顏色」對話方塊:
PrivateSubCommand1_Click()
'將Cancel設定成True。
CommonDialog1.CancelError=True
OnErrorGoToErrHandler
'設定Flags屬性。
CommonDialog1.Flags=cdlCCRGBInit
'顯示“顏色”對話框。
CommonDialog1.ShowColor
'將窗體的背景顏色設定成選定的'顏色。
Form1.BackColor=CommonDialog1.Color
ExitSub
ErrHandler:
'使用者按了「取消」按鈕。
ExitSub
EndSub
使用“字型”對話框
「字體」對話方塊依大小、顏色、樣式選擇字體。使用者一旦在「字型」對話方塊中選定字體後,下列屬性就會包含使用者選項的資訊。
若要顯示“字體”對話框
1.將Flags屬性設定為下述VisualBasic常數之一:
cdlCFScreenFonts(螢幕字體)
cdlCFPrinterFonts(印表機字型)
cdlCFBoth(既可以是螢幕字體又可以是印表機字體)
警告在顯示「字體」對話方塊之前必須將Flags屬性設為這些數值之一,否則將發生字體不存在錯誤。
2.用ShowFont方法顯示對話框。
下列程式碼根據使用者在「字體」對話方塊中的選擇來設定文字方塊的字體屬性:
PrivateSubCommand1_Click()
'將Cancel設定成True。
CommonDialog1.CancelError=True
OnErrorGoToErrHandler
'設定Flags屬性。
CommonDialog1.Flags=cdlCFBothOrcdlCFEffects
'顯示“字體”對話框。
CommonDialog1.ShowFont
'根據使用者的選擇來設定文字屬性。
Text1.Font.Name=CommonDialog1.FontName
Text1.Font.Size=CommonDialog1.FontSize
Text1.Font.Bold=CommonDialog1.FontBold
Text1.Font.Italic=CommonDialog1.FontItalic
Text1.Font.Underline=CommonDialog1.FontUnderline
Text1.FontStrikethru=CommonDialog1.FontStrikethru
Text1.ForeColor=CommonDialog1.Color
ExitSub
ErrHandler:
'使用者按了「取消」按鈕。
ExitSub
EndSub
->