色の処理 (Visual Basic 6.0 ユーザー向け)
更新 : 2007 年 11 月
ここでは、Visual Basic 6.0 と Visual Basic 2008 での色の処理を比較します。
Visual Basic 2008 で色を操作する方法は、Visual Basic 6.0 の場合と似ていますが、概念の違いをいくつか理解する必要があります。また、Visual Basic 6.0 で色の指定に使う定数は、Visual Basic 2008 では新しい色の列挙体に置き換えられています。
概念の違い
Visual Basic 6.0 では、色は Long 型の値でしたが、Visual Basic 2008 では Color 型の値です。Visual Basic 6.0 では、8 つの標準色を表す定数が使用されていましたが、Visual Basic 2008 では、100 以上の名前の付けられた色が使用されます。
ヒント : |
---|
標準色ではない Visual Basic 6.0 の色に相当する色を見つけるには、Visual Basic 6.0 の色を表す Long 型の値を ColorTranslator クラスに渡します。 |
色の定数
Visual Basic 6.0 では、色をユーザーのシステム設定に対応付けるために使うシステム カラーに定数が用意されていました。Visual Basic 2008 では、システム カラーは SystemColors 型です。
BackColor プロパティおよび ForeColor プロパティ
Visual Basic 6.0 では、コントロールの BackColor プロパティと ForeColor プロパティをデザイン時または実行時に明示的に設定する必要があったため、色設定については継承できませんでした。Visual Basic 2008 では、デザイン時または実行時に色が明示的に設定されていない場合は、親の色設定を継承します。詳細については、「色の動作 (Visual Basic 6.0 ユーザー向け)」を参照してください。
Palette プロパティおよび PaletteMode プロパティ
Visual Basic 6.0 では、フォームの Palette プロパティおよび PaletteMode プロパティを使用して、256 色のモニタでイメージを表示するときに使用する色のセットを制御していました。Visual Basic 2008 では、Palette プロパティまたは PaletteMode プロパティはサポートされていません。詳細については、「パレット (Visual Basic 6.0 ユーザー向け)」を参照してください。
MaskColor プロパティ
Visual Basic 6.0 の MaskColor プロパティは、CheckBox、Button、および RadioButton の各コントロールから削除されました。グラフィックス メソッドを使って、MaskColor プロパティを列挙できます。詳細については、「MaskColor (Visual Basic 6.0 ユーザー向け)」を参照してください。
色を扱うコードの変更
次のコード例は、Visual Basic 6.0 と Visual Basic 2008 のコーディング テクニックの違いを示します。
色をシステム カラーに設定するコードの変更
次のコードは、フォームの BackColor を、ユーザーがアクティブなタイトル バーに選択した色に一致させます。
' Visual Basic 6.0
Me.BackColor = vbActiveTitleBar
' Visual Basic
Me.BackColor = System.Drawing.SystemColors.ActiveCaption
色を Visual Basic 6.0 値に設定するコードの変更
次の例は、TextBox コントロールの BackColor プロパティを Visual Basic 6.0 のカラー ピッカーの最も明るい緑色 (&H00C0FFC0) に相当する値に設定します。
' Visual Basic 6.0
textBox1.Text = &H00C0FFC0
' Visual Basic
TextBox1.BackColor = System.Drawing.ColorTranslator.FromOle(&HC0FFC0)
定数の対応表
次の表は、Visual Basic 6.0 の定数と Visual Basic 2008 の対応する定数を示しています。
カラー定数の対応表
Visual Basic 6.0 |
Visual Basic 2005 での同等物 |
---|---|
vbBlack |
|
vbRed |
|
vbGreen |
|
vbYellow |
|
vbBlue |
|
vbMagenta |
|
vbCyan |
|
vbWhite |
システム カラー定数の対応表
Visual Basic 6.0 |
Visual Basic 2005 での同等物 |
---|---|
vb3DDKShadow |
|
vb3DFace |
|
vb3DHighlight |
|
vb3DLight |
|
vb3DShadow |
|
vbActiveBorder |
|
vbActiveTitleBar |
|
vbActiveTitleBarText |
|
vbApplicationWorkspace |
|
vbButtonFace |
|
vbButtonShadow |
|
vbButtonText |
|
vbDesktop |
|
vbGrayText |
|
vbHighlight |
|
vbHighlightText |
|
vbInactiveBorder |
|
vbInactiveCaptionText |
|
vbInactiveTitleBar |
|
vbInactiveTitleBarText |
|
vbInfoBackground |
|
vbInfoText |
|
vbMenuBar |
|
vbMenuText |
|
vbScrollBars |
|
vbTitleBarText |
|
vbWindowBackground |
|
vbWindowFrame |
|
vbWindowText |
アップグレード メモ
アップグレード ウィザードを使って Visual Basic 6.0 アプリケーションを Visual Basic 2008 にアップグレードすると、色は FromOle メソッドを使って変換されます。
アップグレード後に、BackColor プロパティまたは ForeColor プロパティを実行時に明示的に設定するコードがないかを検索します。この設定が親に対して行われている場合は、デザイン時に子コントロールの色を明示的に設定します。それ以外の場合は、子コントロールは親から色を継承します。
Palette、PaletteMode、または MaskColor の各プロパティを使用するコードは、Visual Basic 2008 では書き直す必要があります。
参照
概念
色の動作 (Visual Basic 6.0 ユーザー向け)
パレット (Visual Basic 6.0 ユーザー向け)
MaskColor (Visual Basic 6.0 ユーザー向け)