色の動作 (Visual Basic 6.0 ユーザー向け)
更新 : 2007 年 11 月
コントロールの ForeColor プロパティおよび BackColor プロパティの動作は、Visual Basic 6.0 と Visual Basic 2008 で異なります。
概念の違い
Visual Basic 6.0 では、コントロールの BackColor プロパティと ForeColor プロパティをデザイン時または実行時に明示的に設定する必要があったため、色設定については継承できませんでした。Visual Basic 2008 では、デザイン時または実行時に色が明示的に設定されていない場合は、親の色設定を継承します。
色の動作を扱うコードの変更
色設定の違いを示す例として、Command1 と Command2 という 2 つの CommandButton コントロールを含むフォームを次に示します。
' 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 プロパティを明示的に設定するコードを検索してください。それが親に対して設定されている場合は、デザイン時に子コントロールの色を明示的に設定します。
参照
参照
色の処理 (Visual Basic 6.0 ユーザー向け)