ComboBox コントロール (Visual Basic 6.0 ユーザー向け)

更新 : 2007 年 11 月

Visual Basic 2008 では、Visual Basic 6.0 の ComboBox コントロールは Windows フォームの ComboBox コントロールに置き換えられています。プロパティ、メソッド、イベント、および定数の中には、名称が異なるものや、動作の異なるものもあります。

概念の違い

Change イベント

Visual Basic 6.0 では、ComboBox コントロールの Change イベントが生成されるのは、このコントロールのテキストが変更されたときです。Change イベントは、コントロールの一覧部分でアイテムが選択されたときには生成されません。また、アイテムのテキストをプログラムで変更した場合にも Change イベントは発生しません。

Visual Basic 2008 では、Change イベントは使用されなくなりました。次のような理由でテキストが変更されるたびに、TextChanged イベントが生成されます。

  • テキスト入力部分が変更された。

  • 一覧でアイテムが選択された。

  • 一覧のアイテムがプログラムで変更された。

  • AddItem メソッドが呼び出された。

ItemData プロパティ

Visual Basic 6.0 では、デザイン時に [プロパティ] ウィンドウで ComboBox コントロールの ItemData プロパティを設定して、ComboBox のアイテムに Integer を関連付けることができます。

Visual Basic 2008 では、ItemData プロパティは使用されなくなりました。Microsoft.VisualBasic 互換性ライブラリには、Integer をアイテムに関連付けることができる SetItemData 関数が含まれています。アイテムを取得する場合は GetItemData 関数を使用できます。

Locked プロパティ

Visual Basic 6.0 では、ComboBox コントロールのテキスト ボックス部分が編集できるかどうかは、コントロールの Locked プロパティによって決定されます。

Visual Basic 2008 では、Locked プロパティは、デザイン時にコントロールの移動を禁止するために使用します。Visual Basic 6.0 の Locked プロパティに直接相当するものはありませんが、ComboBox コントロールの DropDownStyle プロパティを DropDownList に設定することによって、同じ結果が得られます。

メモ   Visual Basic 6.0 では、Locked プロパティを True に設定することでも、選択内容を変更できないように設定できます。これと同じような効果を得るには、MouseDown イベントの選択をキャンセルします。

NewIndex プロパティ

Visual Basic 6.0 では、ComboBox コントロールに追加された最も新しいアイテムのインデックスを取得するために、NewIndex プロパティを使用していました。

Visual Basic 2008 では、NewIndex プロパティは使用されなくなりました。Item.Add メソッドの戻り値を使うと、追加したアイテムのインデックスを取得できます。

TopIndex プロパティ

Visual Basic 6.0 では、ComboBox コントロールや ListBox コントロールでどのアイテムを一番上に表示するかを指定する値を TopIndex プロパティを使って取得または設定できます。このプロパティは一般に、アイテムを選択せずにリストをスクロールするために使用されます。

Visual Basic 2008 では、ComboBox コントロールで TopIndex プロパティはサポートされなくなりました。Style プロパティを 1 - SimpleCombo に設定した場合以外は、TopIndex プロパティを設定しても目に見える違いはないので、ほとんどの場合は問題ありません。Style プロパティを 1 - SimpleCombo に設定している場合は、ListBox コントロールと TextBox コントロールを使用することにより、この ComboBox の動作をエミュレートできます。ListBox コントロールは引き続き TopIndex プロパティをサポートしています。

Scroll イベント

Visual Basic 6.0 の Scroll イベントは、TopIndex プロパティと組み合わせて、リストのスクロール時にアクションを実行するために使用します。Visual Basic 2008 では、Scroll イベントはサポートされませんが、ほとんどの場合、SelectedIndexChanged イベントで適切に置き換えることができます。

その他の違い

また、データ連結、フォント処理、ドラッグ アンド ドロップ操作、ヘルプ サポートなど、すべてのコントロールに当てはまる概念上の相違が数多くあります。詳細については、「Windows フォームの概念 (Visual Basic 6.0 ユーザー向け)」を参照してください。

ComboBox コントロールを扱うコードの変更

次のコード例は、Visual Basic 6.0 と Visual Basic 2008 のコーディング テクニックの違いを示します。

ComboBox コントロールを読み取り専用にするコードの変更

次のコード例は、ユーザーが ComboBox コントロールに新しいアイテムを追加できないようにする方法を示します。

' Visual Basic 6.0
Combo1.Locked = True
' Visual Basic
ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList

ComboBox コントロールに追加された最も新しいアイテムを選択するコードの変更

次のコード例は、ComboBox コントロールにプログラムで追加されたアイテムを選択状態にする方法を示します。

' Visual Basic 6.0
Combo1.AddItem "This is a new item"
Combo1.ListIndex = Combo1.NewIndex
' Visual Basic
Dim i As Integer
i = ComboBox1.Items.Add("This is a new item")
ComboBox1.SelectedIndex = i

ItemData を関連付ける Private Sub コードの変更

次のコード例は、ComboBox コントロールの一覧に含まれる各従業員に従業員番号を関連付け、その番号を実行時に取得する方法を示します。

' Visual Basic 6.0
Private Sub Form_Load
    Combo1.AddItem "Nancy Davolio"
    Combo1.ItemData(Combo1.NewIndex) = 12345
    Combo1.AddItem "Judy Phelps"
    Combo1.ItemData(Combo1.NewIndex) = 67890
End Sub
Private Sub Combo1_Click()
    Label1.Caption = "Empoyee #" & _
    CStr(Combo1.ItemData(Combo1.ListIndex))
End Sub
' Visual Basic
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load

   ComboBox1.Items.Add("Nancy Davolio")
   Microsoft.VisualBasic.Compatibility.VB6. _
      SetItemData(ComboBox1, ComboBox1.Items.Count() - 1, 12345)

   ComboBox1.Items.Add("Judy Phelps")
   Microsoft.VisualBasic.Compatibility.VB6. _
      SetItemData(ComboBox1, ComboBox1.Items.Count() - 1, 67890)
End Sub
' Visual Basic
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

   Label1.Text = "Employee #" & CStr( _
   Microsoft.VisualBasic.Compatibility.VB6. _
      GetItemData(ComboBox1, ComboBox1.SelectedIndex))
End Sub

ComboBox コントロールのプロパティ、メソッド、およびイベントで対応するもの

次の表は、Visual Basic 6.0 のプロパティ、メソッド、およびイベントと、対応する Visual Basic 2008 のプロパティ、メソッド、およびイベントの一覧です。同じ名前で同じ動作を持つプロパティ、メソッド、およびイベントは、一覧に含まれていません。必要に応じて、プロパティまたはメソッドの下に定数が示されています。特に明記されていない限り、すべての Visual Basic 2008 列挙型は System.Windows.Forms 名前空間に対応します。

この表には、動作の違いを説明するトピックへのリンクも含まれています。Visual Basic 2008 に直接対応するものがない場合は、代わりの項目について説明したトピックへのリンクを示します。

プロパティ

Visual Basic 6.0

Visual Basic 2008 で対応するもの

Appearance

新規に実装されました。詳細については、「Appearance プロパティおよび BorderStyle プロパティ (Visual Basic 6.0 ユーザー向け)」を参照してください。

BackColor

BackColor

fte6kbt2.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、色は別の方法で処理されます。詳細については、「色の動作 (Visual Basic 6.0 ユーザー向け)」を参照してください。

Container

Parent

DataChanged

DataField

DataFormat

DataMember

DataSource

新規に実装されました。詳細については、「Data コントロール (Visual Basic 6.0 ユーザー向け)」を参照してください。

DragIcon

DragMode

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

Font

FontBold

FontItalic

FontName

FontSize

FontStrikethrough

FontUnderline

Font

fte6kbt2.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、フォントは別の方法で処理されます。詳細については、「フォント処理 (Visual Basic 6.0 ユーザー向け)」を参照してください。

ForeColor

ForeColor

fte6kbt2.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、色は別の方法で処理されます。詳細については、「色の動作 (Visual Basic 6.0 ユーザー向け)」を参照してください。

Height

Height, Size

fte6kbt2.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

HelpContextID

新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。

HWnd

Handle

Index

新規に実装されました。詳細については、「コントロール配列 (Visual Basic 6.0 ユーザー向け)」を参照してください。

ItemData

新規に実装されました。詳細については、「ItemData プロパティをアップグレードできない」を参照してください。

Left

Left

fte6kbt2.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

List

Items

ListCount

Count

ListIndex

SelectedIndex

Locked

DropDownStyle = DropDownList

fte6kbt2.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 6.0 では、Locked プロパティを True に設定することでも、選択内容を変更できないように設定できます。Visual Basic 2008 で、これと同じような効果を得るには、MouseDown イベントで選択をキャンセルします。

MouseIcon

新規に実装されました。詳細については、「カスタム MousePointer を設定できない」を参照してください。

MousePointer

Cursor

定数の一覧については、「MousePointer (Visual Basic 6.0 ユーザー向け)」を参照してください。

NewIndex

新規に実装されました。詳細については、「NewIndex プロパティをアップグレードできない」を参照してください。

OLEDragMode

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

OLEDropMode

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

Parent

FindForm メソッド

RightToLeft

RightToLeft

SelLength

SelectionLength

SelStart

SelectionStart

SelText

SelectedText

Style

DropDownStyle

ToolTipText

ToolTip コンポーネント

詳細については、「ツールヒントのサポート (Visual Basic 6.0 ユーザー向け)」を参照してください。

Top

Top

fte6kbt2.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

TopIndex

新規に実装されました。詳細については、「TopIndex プロパティおよび Scroll イベント (Visual Basic 6.0 ユーザー向け)」を参照してください。

WhatsThisHelpID

新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。

Width

Width, Size

fte6kbt2.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

メソッド

Visual Basic 6.0

Visual Basic 2008 で対応するもの

AddItem

Add

AddRange

Insert

Clear

Clear

Drag

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

Move

SetBounds

fte6kbt2.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

OLEDrag

ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け).

RemoveItem

Items.Remove

SetFocus

Focus

ShowWhatsThis

新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。

ZOrder

BringToFrontSendToBack 関数

イベント

Visual Basic 6.0

Visual Basic 2008 で対応するもの

Change

TextChanged

fte6kbt2.alert_note(ja-jp,VS.90).gifメモ :
TextChanged イベントの動作は少し変更されています。詳細については、「ComboBox コントロールの Change イベント (Visual Basic 6.0 ユーザー向け)」を参照してください。

Click

SelectedIndexChanged

DblClick

新規に実装されました。SelectedIndexChanged イベントまたは TextChanged イベントを使用します。

DragDrop

DragOver

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

GotFocus

Enter

LostFocus

Leave

OLECompleteDrag

OLEDragDrop

OLEDragOver

OLEGiveFeedback

OLESetData

OLEStartDrag

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

Scroll

新規に実装されました。詳細については、「TopIndex プロパティおよび Scroll イベント (Visual Basic 6.0 ユーザー向け)」を参照してください。

Validate

Validating

アップグレード メモ

Visual Basic 6.0 プロジェクトを Visual Basic 2008 にアップグレードすると、ComboBox コントロールの Change イベントが、Visual Basic 2008 の ComboBox コントロールの TextChanged イベントにマップされます。TextChanged イベントの動作は、Change イベントとは異なります。この相異によって、コードで意図した結果が得られない場合があります。

ItemData、Locked、NewIndex、または TopIndex プロパティを参照するコード、または Scroll イベント プロシージャ内のコードは、アップグレードされません。このようなコードには警告のコメントが挿入されるので、アプリケーションをコンパイルする前にコードを削除するか変更する必要があります。

参照

概念

色の動作 (Visual Basic 6.0 ユーザー向け)

フォント オブジェクト (Visual Basic 6.0 ユーザー向け)

MousePointer (Visual Basic 6.0 ユーザー向け)

ツールヒントのサポート (Visual Basic 6.0 ユーザー向け)

参照

ComboBox コントロールの概要 (Windows フォーム)