vb通用对话框怎么添加:两种可行路径
vb通用对话框怎么添加分为部件引用法和代码创建法,部件引用法适合VB6可视化开发环境,需要在工程部件勾选MicrosoftCommonDialogControl6.0,拖拽控件到窗体后才能调用打开、保存等弹窗,代码创建法不用添加可视化控件,直接在代码里创建对象实例,两种方式都只支持VB6,VBA、VB.NET环境不能直接复用这套操作,VB.NET推荐使用OpenFileDialog替代。
vb通用对话框怎么添加之部件引用法
打开VB6工程后,在顶部菜单找到工程,点击部件选项调出部件勾选面板,在控件列表里找到MicrosoftCommonDialogControl6.0,勾选前方复选框,点击确定,工具箱内就会多出通用对话框图标。你把这个图标拖放到窗体任意位置,控件运行时不会显示在界面上,只作为后台组件存在。给控件命名后,就可以在按钮点击事件里设置Filter、FileName等属性,再调用ShowOpen或者ShowSave方法调出文件选择窗口。
这个控件文件对应的是comdlg32.ocx,系统缺少该文件时,勾选部件会提示无法加载。
vb通用对话框怎么添加之纯代码创建法
纯代码创建不需要操作工具箱和部件面板,适合不想在窗体放置控件的场景,在代码头部先使用Dim语句声明CommonDialog类型对象,再用Set关键字完成实例化。你需要先确认系统注册好comdlg32.ocx,否则执行Set语句会报ActiveX部件不能创建对象。实例完成后,属性和调用方法和拖拽生成的控件保持一致,Filter用来限定文件后缀,InitDir设置初始打开目录,CancelError属性可以捕获用户点击取消的动作。
| 方式 | 操作难度 | 运行依赖 | 适合场景 |
|---|---|---|---|
| 部件拖拽引用 | 较低 | comdlg32.ocx已注册 | 常规可视化窗体开发 |
| 代码动态创建 | 中等 | comdlg32.ocx已注册 | 动态生成弹窗、无窗体控件需求 |
comdlg32.ocx属于旧版ActiveX控件,Windows10、Windows11默认没有注册这个文件,放到system32或者SysWOW64目录后,需要使用regsvr32命令手动注册,64位系统要区分32位和64位目录,注册路径错误依旧无法使用。
你写测试代码时,建议增加错误捕获语句,用户点击对话框取消按钮时,控件默认抛出错误,不加OnErrorResumeNext会直接中断程序运行。
VB.NET不支持CommonDialog控件。
VB6通用对话框只覆盖文件打开、文件保存、颜色选择、字体选择、打印这五类弹窗,不支持文件夹选择,文件夹弹窗需要额外调用ShellAPI或者另一个第三方控件实现。
Filter属性的书写格式固定,描述和后缀用竖线隔开,多个类型继续追加竖线,例如"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*",分隔符号写错会造成下拉文件类型列表显示错乱。
