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