颜色处理(针对 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 属性

CheckBoxButtonRadioButton 控件不再具有 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

Black

vbRed

Red

vbGreen

Lime

vbYellow

Yellow

vbBlue

Blue

vbMagenta

Magenta

vbCyan

Cyan

vbWhite

White

系统颜色常数等效项

Visual Basic 6.0

Visual Basic 2005 等效项

vb3DDKShadow

ControlDarkDark

vb3DFace

Control

vb3DHighlight

ControlLightLight

vb3DLight

ControlLight

vb3DShadow

ControlDark

vbActiveBorder

ActiveBorder

vbActiveTitleBar

ActiveCaption

vbActiveTitleBarText

ActiveCaptionText

vbApplicationWorkspace

AppWorkspace

vbButtonFace

Control

vbButtonShadow

ControlDark

vbButtonText

ControlText

vbDesktop

Desktop

vbGrayText

GrayText

vbHighlight

Highlight

vbHighlightText

HighlightText

vbInactiveBorder

InactiveBorder

vbInactiveCaptionText

InactiveCaptionText

vbInactiveTitleBar

InactiveCaption

vbInactiveTitleBarText

InactiveCaptionText

vbInfoBackground

Info

vbInfoText

InfoText

vbMenuBar

Menu

vbMenuText

MenuText

vbScrollBars

ScrollBar

vbTitleBarText

ActiveCaptionText

vbWindowBackground

Window

vbWindowFrame

WindowFrame

vbWindowText

WindowText

升级说明

在使用升级向导将 Visual Basic 6.0 应用程序升级到 Visual Basic 2008 时,会使用 FromOle 方法转换颜色。

升级之后,应搜索在运行时显式设置 BackColorForeColor 属性的任何代码。如果代码是为父级设置的,则应在设计时显式设置子控件的颜色,否则子控件将从父控件继承颜色。

任何使用 Palette、PaletteMode 或 MaskColor 属性的代码在 Visual Basic 2008 中都需要重新编写。

请参见

概念

颜色行为(针对 Visual Basic 6.0 用户)

调色板(针对 Visual Basic 6.0 用户)

MaskColor(针对 Visual Basic 6.0 用户)

其他资源

适用于 Visual Basic 6.0 用户的 Windows 窗体控件