许多程序员希望在早期的Windows系统(如Windows 2000/XP)上使用Windows Vista的任务对话框,但遗憾的是这是不可能的。尽管互联网上有一些任务对话框的实现,但它们都不是用VB.NET编写的。因此,决定编写自己的类似于Vista任务对话框的表单版本,它几乎完全兼容MessageBox类,并且实现了Vista任务对话框的一些功能(其余的功能将在以后实现)。一些尚未实现的功能可以通过自定义控件(如单选按钮或进度条)来模拟。
VDialog类与MessageBox类兼容,因此可以以相同的方式使用,例如:
VDialog.Show(Me, "Text", "Caption", MessageBoxButtons.YesNo, MessageBoxIcon.Error)
要自定义VDialog的外观,必须创建一个VDialog对象,设置其属性,然后调用Show()方法,例如:
Dim vd As New VDialog()
With vd
.WindowTitle = "Windows Vista"
.Owner = Me
.MainInstruction = "You must click OK button to continue"
.Buttons = New VDialogButton() {
New VDialogButton(VDialogResult.OK),
New VDialogButton(VDialogResult.Continue)
}
.MainIcon = VDialogIcon.SecurityShieldBlue
.DefaultButton = VDialogDefaultButton.None
.Content = "If you don't know what to do, click Cancel button."
.LockSystem = True
.CustomControl = New MyCustomControl()
.Show()
End With
与MessageBox类几乎完全兼容,现有的代码可以轻松更改为使用VDialog类而不是MessageBox类,只需将MessageBox.Show(…)调用更改为VDialog.Show(…)调用即可。
支持的方法:
Show(String) As DialogResult
Show(String, String) As DialogResult
Show(String, String, MessageBoxButtons) As DialogResult
Show(String, String, MessageBoxButtons, MessageBoxIcon) As DialogResult
Show(String, String, MessageBoxButtons, MessageBoxIcon, MessageBoxDefaultButton) As DialogResult
Show(String, String, MessageBoxButtons, MessageBoxIcon, MessageBoxDefaultButton, MessageBoxOptions) As DialogResult
Show(IWin32Window, String) As DialogResult
Show(IWin32Window, String, String) As DialogResult
Show(IWin32Window, String, String, MessageBoxButtons) As DialogResult
Show(IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon) As DialogResult
Show(IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon, MessageBoxDefaultButton) As DialogResult
Show(IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon, MessageBoxDefaultButton, MessageBoxOptions) As DialogResult
VDialog类还可以以另一种方式使用。可以创建一个VDialog对象并设置其属性,例如:
标准按钮的标题(例如OK, Yes, Ignore等)可以通过翻译资源文件轻松本地化。这些标题的英文版本包含在Resources.resx文件中。
VDialogIcon类包含十二个只读字段,提供对类似Vista的图像的访问,例如:
还有一个None字段。将VDialogIcon.Security*字段(除了SecurityShield)分配给VDialog类的MainIcon属性会导致在图标和主要指令下方绘制相应的渐变。
VDialogSound类提供了对六个声音(Default, Information, Question, Warning, Error, Security)的访问,这些声音可以分配给VDialog类的Sound属性。可以通过实现ISound接口的对象提供自定义声音。
有一个动画CommandLink控件,可以用来构建自定义控件,然后嵌入到VDialog中。
尽管VDialog类提供了许多有用的属性,但还有一些TaskDialog的功能尚未实现,例如:
这些功能只能通过使用自定义控件获得。
1.5 (15.10.2008) — 重要!这是控制的最后一个“独立”版本。下一个版本包含在CodePlex上托管的新项目中。
1.4 (02.01.2008) — 添加了对Links的支持。
1.3 (12.12.2007) — 添加了对CommandLinks的部分支持。
1.2 (05.12.2007) — 添加了XML文档。
1.1 (18.11.2007) — 重命名了一些属性,使其符合TaskDialog。