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 |
メモ :
Visual Basic 2008 では、色は別の方法で処理されます。詳細については、「色の動作 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
Container |
|
DataChanged DataField DataFormat DataMember DataSource |
新規に実装されました。詳細については、「Data コントロール (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
DragIcon DragMode |
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Font FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline |
メモ :
Visual Basic 2008 では、フォントは別の方法で処理されます。詳細については、「フォント処理 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
ForeColor |
メモ :
Visual Basic 2008 では、色は別の方法で処理されます。詳細については、「色の動作 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
Height |
メモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
HelpContextID |
新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
HWnd |
|
Index |
新規に実装されました。詳細については、「コントロール配列 (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
ItemData |
新規に実装されました。詳細については、「ItemData プロパティをアップグレードできない」を参照してください。 |
Left |
メモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
List |
|
ListCount |
|
ListIndex |
|
Locked |
メモ :
Visual Basic 6.0 では、Locked プロパティを True に設定することでも、選択内容を変更できないように設定できます。Visual Basic 2008 で、これと同じような効果を得るには、MouseDown イベントで選択をキャンセルします。
|
MouseIcon |
新規に実装されました。詳細については、「カスタム MousePointer を設定できない」を参照してください。 |
MousePointer |
定数の一覧については、「MousePointer (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
NewIndex |
新規に実装されました。詳細については、「NewIndex プロパティをアップグレードできない」を参照してください。 |
OLEDragMode |
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
OLEDropMode |
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Parent |
FindForm メソッド |
RightToLeft |
|
SelLength |
|
SelStart |
|
SelText |
|
Style |
|
ToolTipText |
ToolTip コンポーネント 詳細については、「ツールヒントのサポート (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Top |
メモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
TopIndex |
新規に実装されました。詳細については、「TopIndex プロパティおよび Scroll イベント (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
WhatsThisHelpID |
新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Width |
メモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
メソッド
Visual Basic 6.0 |
Visual Basic 2008 で対応するもの |
---|---|
AddItem |
|
Clear |
|
Drag |
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Move |
メモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
OLEDrag |
|
RemoveItem |
Items.Remove |
SetFocus |
|
ShowWhatsThis |
新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
ZOrder |
イベント
Visual Basic 6.0 |
Visual Basic 2008 で対応するもの |
---|---|
Change |
メモ :
TextChanged イベントの動作は少し変更されています。詳細については、「ComboBox コントロールの Change イベント (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
Click |
|
DblClick |
新規に実装されました。SelectedIndexChanged イベントまたは TextChanged イベントを使用します。 |
DragDrop DragOver |
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
GotFocus |
|
LostFocus |
|
OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag |
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Scroll |
新規に実装されました。詳細については、「TopIndex プロパティおよび Scroll イベント (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Validate |
アップグレード メモ
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 ユーザー向け)