色の処理 (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 以上の名前の付けられた色が使用されます。

6ys84h69.alert_note(ja-jp,VS.90).gifヒント :

標準色ではない 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 プロパティは、CheckBoxButton、および 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

Black

vbRed

Red

vbGreen

Lime

vbYellow

Yellow

vbBlue

Blue

vbMagenta

Magenta

vbCyan

Cyan

vbWhite

White

システム カラー定数の対応表

Visual Basic 6.0

Visual Basic 2005 での同等物

vb3DDKShadow

ControlDarkDark

vb3DFace

Control

vb3DHighlight

ControlLightLight

vb3DLight

ControlLight

vb3DShadow

ControlDark

vbActiveBorder

ActiveBorder

vbActiveTitleBar

ActiveCaption

vbActiveTitleBarText

ActiveCaptionText

vbApplicationWorkspace

AppWorkspace

vbButtonFace

Control

vbButtonShadow

ControlDark

vbButtonText

ControlText

vbDesktop

Desktop

vbGrayText

GrayText

vbHighlight

Highlight

vbHighlightText

HighlightText

vbInactiveBorder

InactiveBorder

vbInactiveCaptionText

InactiveCaptionText

vbInactiveTitleBar

InactiveCaption

vbInactiveTitleBarText

InactiveCaptionText

vbInfoBackground

Info

vbInfoText

InfoText

vbMenuBar

Menu

vbMenuText

MenuText

vbScrollBars

ScrollBar

vbTitleBarText

ActiveCaptionText

vbWindowBackground

Window

vbWindowFrame

WindowFrame

vbWindowText

WindowText

アップグレード メモ

アップグレード ウィザードを使って 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 ユーザー向け)

その他の技術情報

Windows フォーム コントロール (Visual Basic 6.0 ユーザー向け)