CommomDialog使用的例子
--------------------------------------------------------------------------------
'------名稱-----------------作用-------------
' CdlTest 通用對(duì)話框
' CmdOpen “打開”對(duì)話框按鈕
' CmdSave “另存為”對(duì)話框按鈕
' CmdFont “字體”對(duì)話框按鈕
' CmdColor “顏色”對(duì)話框按鈕
' CmdPrint “打印”對(duì)話框按鈕
' CmdHelp “幫助”對(duì)話框按鈕
'-------------------------------------------
'當(dāng)“顏色”對(duì)話框按鈕被按下時(shí)
Private Sub CmdColor_Click()
On Error Resume Next
CdlTest.CancelError = True
CdlTest.Flags = cdlCCRGBInit
CdlTest.ShowColor
If Err = cdlCancel Then Exit Sub
TextBoxColor.ForeColor = CdlTest.Color
End Sub
'當(dāng)“字體”對(duì)話框按鈕被按下時(shí)
Private Sub CmdFont_Click()
On Error Resume Next
'當(dāng)用戶按下“取消”按鈕,返回一個(gè)錯(cuò)誤信息,這樣使我們可以對(duì)其進(jìn)行控制
CdlTest.CancelError = True
'此句必須要
CdlTest.Flags = cdlCFBoth + cdlCFEffects
'顯示“字體”對(duì)話框
CdlTest.ShowFont
'出現(xiàn)“取消”錯(cuò)誤時(shí),跳出
If Err = cdlCancel Then
Exit Sub
Else
'將TextBox的字體屬性根據(jù)“字體”對(duì)話框的變化作相應(yīng)設(shè)置
'如果用戶選擇了字體才將字體改變,避免字體為空的錯(cuò)誤
If CdlTest.FontName <> "" Then
TextBoxFont.FontName = CdlTest.FontName
End If
TextBoxFont.FontSize = CdlTest.FontSize
TextBoxFont.FontBold = CdlTest.FontBold
TextBoxFont.FontItalic = CdlTest.FontItalic
TextBoxFont.FontStrikethru = CdlTest.FontStrikethru
TextBoxFont.FontUnderline = CdlTest.FontUnderline
End If
End Sub
'當(dāng)“幫助”對(duì)話框按鈕被按下時(shí)
Private Sub CmdHelp_Click()
On Error Resume Next
'設(shè)置 HelpCommand 屬性,顯示 Visual Basic 幫助目錄主題
CdlTest.HelpCommand = cdlHelpForceFile
'指定幫助文件
Dim fullpath As String
If Right(App.Path, 1) = "\" Then ' 若 App.Path 為根目錄
fullpath = App.Path + "test.hlp"
Else
fullpath = App.Path + "\" + "test.hlp"
End If
'上面是得到應(yīng)用程序所在路徑的小技巧
CdlTest.HelpFile = fullpath
'顯示“幫助”對(duì)話框
CdlTest.ShowHelp
End Sub
'當(dāng)“打開”對(duì)話框按鈕被按下時(shí)
Private Sub CmdOpen_Click()
'出現(xiàn)錯(cuò)誤時(shí)跳到下一語(yǔ)句
On Error Resume Next
CdlTest.CancelError = True
'屬性DialogTitle是要彈出的對(duì)話框的標(biāo)題
CdlTest.DialogTitle = "打開文件"
'缺省的文件名為空
CdlTest.FileName = ""
'屬性Filter是文件濾器,返回或設(shè)置在對(duì)話框的類型列表框中所顯示的過(guò)濾器。
'語(yǔ)法object.Filter [= 文件類型描述1 |filter1 |文件類型描述2 |filter2...]
CdlTest.Filter = "文本文件(.txt)|*.txt"
'Flags屬性的用法依據(jù)不同的對(duì)話框而變,詳細(xì)使用需要查找聯(lián)機(jī)幫助手冊(cè)
CdlTest.Flags = cdlOFNCreatePrompt + cdlOFNHideReadOnly
CdlTest.ShowOpen
If Err = cdlCancel Then Exit Sub
TextBoxOPen.Text = CdlTest.FileName
End Sub
'當(dāng)“打印”對(duì)話框按鈕被按下時(shí)
Private Sub CmdPrint_Click()
On Error Resume Next
CdlTest.CancelError = True
'顯示“打印”對(duì)話框
CdlTest.ShowPrinter
If Err = cdlCancel Then Exit Sub
End Sub
'當(dāng)“保存”對(duì)話框按鈕被按下時(shí)
Private Sub CmdSave_Click()
On Error Resume Next
CdlTest.CancelError = True
CdlTest.DialogTitle = "保存文件"
CdlTest.FileName = ""
'解釋見上面
CdlTest.Filter = "文本文件(*.txt)|*.txt"
CdlTest.Flags = cdlOFNCreatePrompt + cdlOFNHideReadOnly
CdlTest.ShowSave
If Err = cdlCancel Then Exit Sub
TextBoxSave.Text = CdlTest.FileName
End Sub
(源程序下載)
如果控件面板中沒(méi)有CommonDialog控件的小圖標(biāo),必須先從“添加控件對(duì)話框”中添加,下面我們來(lái)看看怎樣調(diào)用不同類型的對(duì)話框。
CommonDialog控件有一系列的Show方法,例如:ShowOpen、ShowSave、ShowFont、ShowColor、ShowPrinter、ShowHelp等,這些方法的使用語(yǔ)法是類似的,如下所示:
object.ShowOpen,我們只須在程序中寫入這個(gè)語(yǔ)句,就能調(diào)出“打開”對(duì)話框,同樣也能調(diào)用其它類型的對(duì)話框。
而CommonDialog控件的屬性是和不同的對(duì)話框類型緊密相關(guān)的,有些屬性只適用于某一類對(duì)話框,有些屬性在不同的對(duì)話框中的屬性是有差別的,所以下面分類列出了和不同對(duì)話框相關(guān)聯(lián)的屬性的用法。
與ShowOpen、ShowSave方法相關(guān)的屬性:
●FileName屬性:返回或設(shè)置所選文件的路徑和文件名,如果在使用Show方法以前使用FileName屬性,則設(shè)定了對(duì)話框的默認(rèn)文件名;如果是在以后使用則返回選擇的文件名。
使用語(yǔ)法是: CommonDialog.Filename[=pathname]
●Filter屬性:返回或設(shè)置在對(duì)話框的類型列表框中所顯示的過(guò)濾器(也就是限定打開或保存為的文件類型),它的使用語(yǔ)法是:
object.Filter [= 描述文字1 |過(guò)濾標(biāo)示1 |描述文字2 |過(guò)濾標(biāo)示2]
其中描述文字為任意文字,而 過(guò)濾標(biāo)示則采用*.文件后綴(例如:*.bmp)的格式,描述文字和過(guò)濾標(biāo)示之間用“|”隔開。
●DefaultExt屬性:為該對(duì)話框返回或設(shè)置缺省的文件擴(kuò)展名,也就是當(dāng)我們沒(méi)有指定打開或保存的文件類型時(shí),按DefaultExt屬性所設(shè)置的擴(kuò)展名為默認(rèn)值。
與ShowFont方法相關(guān)的屬性:
●Color選定的顏色。為使用此屬性,必須先將Flags屬性設(shè)置為cdlCFEffects。
●FontBold 是否選定“粗體”。
●FontItalic 是否選定“斜體”。
●FontStrikethru 是否選定刪除線。
●FontUnderline 是否選定下劃線。
●FontName 選定的字體名稱。
●FontSize 選定的字體大小。
使用的語(yǔ)法是直接引用,比如我們要根據(jù)“字體對(duì)話框”返回的值設(shè)置文本框的字體,則直接采用語(yǔ)句:Text.Font=CommonDialog.FontnName
與ShowColor方法相關(guān)的屬性:
●Color選定的顏色。為使用此屬性,必須先將Flags屬性設(shè)置為cdlCFEffects。
與ShowHelp方法相關(guān)的屬性:
●HelpCommand屬性 返回或設(shè)置需要的聯(lián)機(jī)幫助的類型
●HelpFile屬性 確定幫助文件的路徑和文件名
語(yǔ)法是: object.HelpFile[ = filename]
下面看看CancelError屬性,它設(shè)置當(dāng)選取“取消”按鈕時(shí)是否認(rèn)為出錯(cuò),使用的語(yǔ)法是:CommonDialog.CancelError[= boolean] (boolean指布爾型變量)
如果我們把它設(shè)為True,則當(dāng)使用者選取了“取消”按鈕時(shí)程序會(huì)返回一個(gè)cdlCancel錯(cuò)誤,通過(guò)捕捉這個(gè)錯(cuò)誤并加以處理,我們就能避免程序的出錯(cuò)。具體的使用可在源碼中看到實(shí)例。