共用方式為


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

更新:2007 年 11 月

控制項的 ForeColor 和 BackColor 屬性 (Property) 在 Visual Basic 6.0 的行為和 Visual Basic 2008 中有所不同。

概念上的差異

在 Visual Basic 6.0 中,控制項的 BackColor 和 ForeColor 屬性必須在設計階段或執行階段中明確設定,而且無法繼承色彩。在 Visual Basic 2008 中,除非色彩是在設計階段或執行階段中明確設定的,否則它會從其父代 (Parent) 繼承色彩設定。

色彩行為的程式碼變更

下列表單範例包含兩個 CommandButton 控制項 (Command1 和 Command2),並示範行為上的差異:

' Visual Basic 6.0

' Command1's BackColor is left at its default (gray).

' Command2's BackColor is explicitly set.

Command2.BackColor = vbBlack

' Explicitly set the BackColor of the form.

Form1.BackColor = vbRed

在執行上述程式碼之後,Command1 的 BackColor 仍為預設值 (灰色),而 Command2 的 BackColor 則是黑色。

下列範例會顯示 Visual Basic 2008 中的行為。在 Visual Basic 2008 中,CommandButton 控制項已經由 Button 控制項取代。

' Visual Basic
' Command1's BackColor is left at its default (gray).
' Command2's BackColor is explicitly set.
Command2.BackColor = System.Drawing.Color.Black
' Explicitly set the BackColor of the form.
Me.BackColor = System.Drawing.Color.Red

執行上述程式碼之後,Command1 的 BackColor 是紅色,而 Command2 的 BackColor 是黑色。由於沒有明確設定 Command1 的 BackColor,所以會從表單繼承紅色。

注意事項:

這會套用到所有父代,而不是只套用到表單。如果 Button 包含在表單內的 Panel 控制項中,則變更面板或表單的色彩時,會同時變更 Button 的色彩。

升級注意事項

當 Visual Basic 6.0 應用程式升級為 Visual Basic 2008 時,升級精靈沒有辦法判斷是否將繼承色彩。升級後,請搜尋任何可於執行階段中明確設定 BackColorForeColor 屬性的程式碼。如果其屬性是由父代設定,請於設計階段明確設定子控制項的色彩。

請參閱

參考

Visual Basic 6.0 使用者可用的色彩處理方式

其他資源

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