Public Class Form1 Dim bTextChangeCancel As Boolean = False Dim bSelectedIndexChangeCancel As Boolean = False Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged If ListBox1.SelectedIndex < 0 Or bTextChangeCancel Then Exit Sub End If ' SelectedIndexChangedの実行を抑制 bSelectedIndexChangeCancel = True ListBox1.Items(ListBox1.SelectedIndex) = TextBox1.Text ' SelectedIndexChangedの抑制を解除 bSelectedIndexChangeCancel = False 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 If ListBox1.SelectedIndex < 0 Or bSelectedIndexChangeCancel Then Exit Sub End If ' TextBox1_TextChangedの実行を抑制 bTextChangeCancel = True TextBox1.Text = ListBox1.Items(ListBox1.SelectedIndex) ' TextBox1_TextChangedの抑制を解除 bTextChangeCancel = False TextBox1.Focus() End Sub End Class