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 時,升級精靈沒有辦法判斷是否將繼承色彩。升級後,請搜尋任何可於執行階段中明確設定 BackColor 或 ForeColor 屬性的程式碼。如果其屬性是由父代設定,請於設計階段明確設定子控制項的色彩。