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

更新:2007 年 11 月

控件的 ForeColor 和 BackColor 属性在 Visual Basic 6.0 和 Visual Basic 2008 中的行为是不同的。

概念差异

在 Visual Basic 6.0 中,控件的 BackColor 和 ForeColor 属性必须在设计时或运行时显式设置;颜色是不能继承的。在 Visual Basic 2008 中,除非在设计时或运行时显式设置颜色,否则将继承其父级的颜色设置。

颜色行为的代码更改

下面是一个有两个 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 窗体控件