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 屬性不再存在於 CheckBox、Button 和 RadioButton 控制項。您可以使用圖形方法模擬 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 |
|
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 屬性的程式碼。如果為父代 (Parent) 設定了該屬性,請在設計階段時明確設定子控制項的色彩,否則子控制項將繼承父代的色彩。
所有使用了 Palette、PaletteMode 或 MaskColor 屬性的程式碼,都必須以 Visual Basic 2008 中重新撰寫。
請參閱
概念
Visual Basic 6.0 使用者可用的 Palette
Visual Basic 6.0 使用者可用的 MaskColor