共用方式為


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 中已由新的色彩列舉型別 (Enumeration) 所取代。

概念上的差異

在 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 中,除非色彩是在設計階段或執行階段明確設定,否則會從其父代 (Parent) 繼承色彩設定。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的色彩行為

Palette 和 PaletteMode 屬性

在 Visual Basic 6.0 中,於 256 色顯示器上顯示影像時,表單的 Palette 和 PaletteMode 屬性可控制要使用哪些色彩。不過,Visual Basic 2008 不支援 Palette 或 PaletteMode 屬性。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Palette

MaskColor 屬性

Visual Basic 6.0 MaskColor 屬性不再存在於 CheckBoxButtonRadioButton 控制項。您可以使用圖形方法模擬 MaskColor 屬性。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 MaskColor

色彩處理的程式碼變更

下列範例顯示 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 屬性的程式碼。如果為父代 (Parent) 設定了該屬性,請在設計階段時明確設定子控制項的色彩,否則子控制項將繼承父代的色彩。

所有使用了 Palette、PaletteMode 或 MaskColor 屬性的程式碼,都必須以 Visual Basic 2008 中重新撰寫。

請參閱

概念

Visual Basic 6.0 使用者可用的色彩行為

Visual Basic 6.0 使用者可用的 Palette

Visual Basic 6.0 使用者可用的 MaskColor

其他資源

Visual Basic 6.0 使用者可用的 Windows Form 控制項