更新:2007 年 11 月
Visual Basic 6.0 的 CommonDialog 控件在 Visual Basic 2008 中由几个专用组件取代。
概念差异
在 Visual Basic 6.0 中,CommonDialog ActiveX 控件用于在应用程序中显示各种常用对话框(“打开”、“保存”、“颜色”、“字体”、“打印”和“帮助”)。
在 Visual Basic 2008 中,CommonDialog 控件由用于显示对话框的下列单独组件取代:OpenFileDialog、SaveFileDialog、ColorDialog、FontDialog 和 PrintDialog 组件。
| .gif) 说明: | 
|---|
| 在 Visual Basic 2008 中没有用于显示“帮助”对话框的直接等效项。CommonDialog 控件只支持 Windows 帮助;Visual Basic 2008 只支持 HTML 帮助。Visual Basic 2008 使用 HelpProvider 组件显示应用程序的帮助。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。 | 
CommonDialog 控件的代码更改
下面的示例演示 Visual Basic 6.0 和 Visual Basic 2008 的 CommonDialog 控件的一些常规用法在编码方法上的不同之处。
显示“打开文件”对话框的代码更改
下面的代码演示如何显示“打开文件”对话框,并用 Program Files 目录初始化。
' Visual Basic 6.0
' Uses a CommonDialog control.
CommonDialog1.InitDir = "C:\Program Files"
CommonDialog1.ShowOpen
' Visual Basic
' Uses a OpenFileDialog component.
OpenFileDialog1.InitialDirectory = "C:\Program Files"
OpenFileDialog1.ShowDialog()
显示“保存文件”对话框的代码更改
下面的代码演示如何显示“保存文件”对话框,以及如何将文件保存到应用程序的文件夹。
' Visual Basic 6.0
' Uses a CommonDialog control.
CommonDialog1.InitDir = App.Path
CommonDialog1.ShowSave
' Visual Basic
' Uses a SaveFileDialog component.
SaveFileDialog1.InitialDirectory = My.Application.Info.DirectoryPath
SaveFileDialog1.ShowDialog()
显示“打印”对话框的代码更改
下面的代码演示如何显示“打印”对话框,以及如何打印位于应用程序文件夹的文件。
' Visual Basic 6.0
' Uses a CommonDialog control.
CommonDialog1.FileName = App.Path & "MyFile.txt"
CommonDialog1.ShowPrinter
' Visual Basic
' Uses PrintDocument and PrintDialog components.
PrintDocument1.DocumentName = My.Application.Info.DirectoryPath _
& "MyFile.txt"
PrintDialog1.Document = PrintDocument1
PrintDialog1.ShowDialog()
显示帮助的代码更改
下面的代码演示如何显示应用程序的帮助文件,以及如何在目录中打开该文件。
' Visual Basic 6.0
' Uses a CommonDialog control.
CommonDialog1.HelpFile = "C:\Windows\Help\calc.hlp"
CommonDialog1.HelpCommand = cdlHelpContents
CommonDialog1.ShowHelp
' Visual Basic
' Uses the Help.ShowHelp method.
Help.ShowHelp(Me, "file://C:\Windows\Help\calc.chm", _
HelpNavigator.TableOfContents)
CommonDialog 控件属性和方法的等效项
下面几个表列出了 Visual Basic 6.0 中的属性、方法及它们的 Visual Basic 2008 等效项。名称和行为相同的属性和方法未列出。如果适用,常量在属性或方法的下面缩进。除非另有说明,否则所有的 Visual Basic 2008 枚举都映射到 System.Windows.Forms 命名空间。
根据需要提供了解释行为差异的主题链接。如果 Visual Basic 2008 中没有直接等效项,则提供指向介绍其他替代项的主题的链接。
属性
| Visual Basic 6.0 | Visual Basic 2008等效项 | ||
|---|---|---|---|
| Action | 新的实现。Visual Basic 6.0 Action 属性确定要显示哪个对话框;Visual Basic 2008 为每个对话框使用不同的组件。 | ||
| CancelError | |||
| Copies | |||
| DialogTitle | Title(只适用于 OpenFileDialog 和 SaveFileDialog 组件) 其他组件的新实现。标准 Windows 标题(Color、Font 和 Print)可以显示但不能被重写。 | ||
| FileName | |||
| FileTitle | 新的实现。Visual Basic 6.0 的 FileTitle 属性返回不带路径的 FileName;可以分析 FileNames 属性以获取不带路径的名称。 | ||
| Flags | Visual Basic 6.0 Flags 属性提供用于设置各种常用对话框的各种属性的常数。对话框组件不使用常数,而是提供用于设置属性 (Attribute) 的属性 (Property)。 | ||
| Font FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline | 
 | ||
| FromPage | |||
| hDC | 新的实现。有关更多信息,请参见图形(针对 Visual Basic 6.0 用户)。 | ||
| HelpCommand | |||
| HelpFile | |||
| HelpKey | ShowHelp 方法的 parameter 参数。 | ||
| Index | 新的实现。有关更多信息,请参见控件数组(针对 Visual Basic 6.0 用户)。 | ||
| InitDir | |||
| Left | 
 | ||
| Max | MaxSize(FontDialog 组件) MaximumPage(PrintDialog 组件) | ||
| Min | MinSize(FontDialog 组件) MinimumPage(PrintDialog 组件) | ||
| MaxFileSize | 新的实现。此 Visual Basic 6.0 属性为极长的文件名分配内存;它在托管代码中不再是必需的。 | ||
| Orientation | |||
| Parent | FindForm 方法 | ||
| PrinterDefault | 新的实现。此 Visual Basic 6.0 属性与 hDC 属性结合使用,以使用图形设备接口方法进行打印;此属性不再受支持。 | ||
| Top | P:System.Windows.Forms.Control.Top 
 | ||
| ToPage | 
方法
| Visual Basic 6.0 | Visual Basic 2005 等效项 | 
|---|---|
| AboutBox | 新的实现。AboutBox 属性显示第三方为 Microsoft 创建的 CommonDialog 控件的“关于”框。 | 
| ShowColor | |
| ShowFont | ShowDialog(FontDialog 组件) | 
| ShowHelp | |
| ShowOpen | |
| ShowPrinter | |
| ShowSave | 
升级说明
在将应用程序从 Visual Basic 6.0 升级到 Visual Basic 2008 时,所有 CommonDialog 控件都升级为其等效的对话框组件(OpenFileDialog、SaveFileDialog、ColorDialog、FontDialog 或 PrintDialog)。
Visual Basic 2008 中没有用于显示 Help 对话框的直接等效项。如果 CommonDialog 控件被用作“帮助”对话框,则将会发出一条警告并且不会升级。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。
单个 CommonDialog 控件可用于显示不同类型的对话框。在这种情况下,它将升级为 OpenFileDialog 组件;并将发出一条警告,您需要手动添加其他对话框组件。
此外,如果 CommonDialog 控件用作变量,可能需要在升级后将该控件更改为引用特定的对话框组件。