颜色行为(针对 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 时,升级向导无法确定是否将继承颜色。升级之后,请搜索在运行时显式设置 BackColor 或 ForeColor 属性的任何代码。如果设置的是父级属性,则请在设计时显式设置子控件的颜色。