颜色处理(针对 Visual Basic 6.0 用户)
更新:2007 年 11 月
本主题将 Visual Basic 6.0 中的颜色处理与其在 Visual Basic 2008 中的等效项进行比较。
在 Visual Basic 2008 中处理颜色与在 Visual Basic 6.0 中处理颜色类似;但是需要了解几个概念差异。此外,Visual Basic 6.0 中用于指定颜色的常量在 Visual Basic 2008 中由新的颜色枚举所取代。
概念差异
在 Visual Basic 6.0 中,颜色由 Long 类型的值表示;在 Visual Basic 2008 中,颜色为 Color 类型。Visual Basic 6.0 中为八种标准颜色提供了常量;在 Visual Basic 2008 中有 100 多种命名的颜色。
提示: |
---|
若要查找不是标准颜色的 Visual Basic 6.0 颜色的等效值,可使用 ColorTranslator 类并向其传递 Visual Basic 6.0 颜色的 Long 值。 |
颜色常量
在 Visual Basic 6.0 中,为可用于将颜色映射到用户系统首选项的系统颜色提供了常数。在 Visual Basic 2008 中,系统颜色为 SystemColors 类型。
BackColor 和 ForeColor 属性
在 Visual Basic 6.0 中,控件的 BackColor 和 ForeColor 属性必须在设计时或运行时显式设置;颜色是不能继承的。在 Visual Basic 2008 中,除非在设计时或运行时显式设置颜色,否则将继承其父级的颜色设置。有关更多信息,请参见 颜色行为(针对 Visual Basic 6.0 用户)。
Palette 和 PaletteMode 属性
在 Visual Basic 6.0 中,窗体的 Palette 和 PaletteMode 属性用于控制在 256 色显示器上显示图像时使用的颜色集。Visual Basic 2008 不支持 Palette 和 PaletteMode 属性。有关更多信息,请参见 调色板(针对 Visual Basic 6.0 用户)。
MaskColor 属性
CheckBox、Button 和 RadioButton 控件不再具有 Visual Basic 6.0 的 MaskColor 属性。可以通过使用图形方法模拟 MaskColor 属性。有关更多信息,请参见 MaskColor(针对 Visual Basic 6.0 用户)。
颜色处理的代码更改
下面的示例演示 Visual Basic 6.0 与 Visual Basic 2008 在编码方法方面的差异。
将颜色设置为系统颜色的代码更改
下面的代码设置窗体的 BackColor 来匹配用户为活动标题栏选择的颜色。
' Visual Basic 6.0
Me.BackColor = vbActiveTitleBar
' Visual Basic
Me.BackColor = System.Drawing.SystemColors.ActiveCaption
将颜色设置为 Visual Basic 6.0 值的代码更改
下面的示例将 TextBox 控件的 BackColor 属性设置为匹配 Visual Basic 6.0 颜色选取器中最亮的绿色 (&H00C0FFC0)。
' Visual Basic 6.0
textBox1.Text = &H00C0FFC0
' Visual Basic
TextBox1.BackColor = System.Drawing.ColorTranslator.FromOle(&HC0FFC0)
常量等效项
下表列出了 Visual Basic 6.0 常量及其 Visual Basic 2008 等效项。
颜色常数等效项
Visual Basic 6.0 |
Visual Basic 2005 等效项 |
---|---|
vbBlack |
|
vbRed |
|
vbGreen |
|
vbYellow |
|
vbBlue |
|
vbMagenta |
|
vbCyan |
|
vbWhite |
系统颜色常数等效项
Visual Basic 6.0 |
Visual Basic 2005 等效项 |
---|---|
vb3DDKShadow |
|
vb3DFace |
|
vb3DHighlight |
|
vb3DLight |
|
vb3DShadow |
|
vbActiveBorder |
|
vbActiveTitleBar |
|
vbActiveTitleBarText |
|
vbApplicationWorkspace |
|
vbButtonFace |
|
vbButtonShadow |
|
vbButtonText |
|
vbDesktop |
|
vbGrayText |
|
vbHighlight |
|
vbHighlightText |
|
vbInactiveBorder |
|
vbInactiveCaptionText |
|
vbInactiveTitleBar |
|
vbInactiveTitleBarText |
|
vbInfoBackground |
|
vbInfoText |
|
vbMenuBar |
|
vbMenuText |
|
vbScrollBars |
|
vbTitleBarText |
|
vbWindowBackground |
|
vbWindowFrame |
|
vbWindowText |
升级说明
在使用升级向导将 Visual Basic 6.0 应用程序升级到 Visual Basic 2008 时,会使用 FromOle 方法转换颜色。
升级之后,应搜索在运行时显式设置 BackColor 或 ForeColor 属性的任何代码。如果代码是为父级设置的,则应在设计时显式设置子控件的颜色,否则子控件将从父控件继承颜色。
任何使用 Palette、PaletteMode 或 MaskColor 属性的代码在 Visual Basic 2008 中都需要重新编写。
请参见
概念
MaskColor(针对 Visual Basic 6.0 用户)