コンボボックス(ドロップダウンリスト)のテキストプロパティとデータテーブルをバインドするには?


ごつん  2008-04-11 17:57:07  No: 139518  IP: 192.*.*.*

御世話になっております。ごつんと申します。

.net Framwork2.0、VB.NET、Windowsアプリケーションにてフォームにコンボボックスとテキストボックス(フォーカス移動の為だけに利用)を貼り以下のようなコードを書いた時・・・

Public Class Form1
    Private dt As New DataTable

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'データテーブルへデータ追加
        dt.Columns.Add("col1")
        dt.Rows.Add(dt.NewRow)
        dt.Rows(0).Item("col1") = "1"
        'コンボボックスアイテム追加
        For i As Integer = 1 To 3
            Me.ComboBox1.Items.Add(i.ToString())
        Next
        'ドロップダウンスタイル変更
        Me.ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
        'バインド設定
        Me.ComboBox1.DataBindings.Add("Text", dt, "col1")
    End Sub

    Private Sub ComboBox1_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Validated
        Console.WriteLine(dt.Rows(0).Item("col1").ToString())
    End Sub
End Class

マウスにてコンボボックスのプルダウンから適当な値を選択し、フォーカスアウトすると選択した値が出力されますが、キーボードのカーソルキー操作にてプルダウンから適当な値を選択し、フォーカスアウトすると選択した値が出力されません(選択前の値が出力されます。)
また、DropDownStyleプロパティをDropDownで同操作を行うと、マウス、キーボード操作に関係なく選択した値が出力されます。
この理屈が解らず、解決策(キーボード操作でも選択した値が出力される方法)を模索しております。

なにとぞご教示の程宜しくお願い致します。

編集 削除