投稿者 是木  (社会人) 投稿日時 2009/5/1 04:45:42
ListBoxとTextBoxの連携について調べているのですが、
以下のようなプログラムを書いてみました。
動作の予定は、
マウスでListBoxの選択位置を変更する都度TextBoxは、ListBoxの該当項目を表示する。
TextBoxを、キー入力で更新する度にListBoxの該当項目も更新される。


1 デザイン画面でListBox1を配置
2 その下にTextBox1を配置
3 以下のコードを実行してみると、


ListBoxの選択項目を変えた場合にテキストボックスは
ListBoxの選択項目をうまく表示してくれたのですが、
テキストボックスにタイプを試みるとエラーで停止になります。
どうしてなんでしょうか?

Public Class Form1

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        ListBox1.Items(ListBox1.SelectedIndex) = TextBox1.Text

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ListBox1.Items.Add("aaa")
        ListBox1.Items.Add("bbb")
        ListBox1.Items.Add("ccc")
        ListBox1.Items.Add("ddd")
        ListBox1.Items.Add("eee")
        ListBox1.SelectedIndex = 0

    End Sub

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        TextBox1.Text = ListBox1.Items(ListBox1.SelectedIndex)
        TextBox1.Focus()
    End Sub
End Class