当面は、タスクを実装するためのコードを書くことができます。今すぐこのコードは、新しく型付けされたテキストがコレクション内のアイテムの一部でないかどうかを検出できます。ユーザーがコレクション内のエントリの一部とみなせる新しいテキストを入力した場合はどうなりますか?すなわち、コレクションにBBC、CNN、FOX Newのようなエントリが含まれていて、ユーザがCN(Cartoon Network)のみを入力したいとしたらどうでしょうか?この場合、 "CN"はCNNの一部になり、コードはそれを新しいエントリ。
Private Sub TextBox1_TextChanged_1(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Dim isNew As Boolean = True
For i As Integer = 0 To TextBox1.AutoCompleteCustomSource.Count - 1
If UCase(Trim(TextBox1.AutoCompleteCustomSource(i))) Like UCase(Trim(TextBox1.Text)) & "*" Then
isNew = False
Exit For
End If
Next
If isNew = True Then
MsgBox("Custome")
Else
End If
End Sub
次のコードは、テキストボックス内のテキストはコレクションに新しいかNOである場合には、当分の間、それがLeaveイベントでそれをキャッチひよこすることができます。 [Enter]キーもキャッチするように改善する必要があります
Private Sub TextBox1_Leave(sender As Object, e As EventArgs) Handles TextBox1.Leave
Dim isNew As Boolean = True
For i As Integer = 0 To TextBox1.AutoCompleteCustomSource.Count - 1
If TextBox1.AutoCompleteCustomSource.Contains(UCase(Trim(TextBox1.Text))) Then
isNew = False
End If
Next
If isNew = True Then
MsgBox("Custome")
Else
End If
End Sub
「KeyPress」イベントと「TextChanged」イベントを組み合わせると、必要な情報が得られると思います。現在の 'Text'値を' TextChanged'のフィールドに格納し、新しいキーボード入力を 'KeyPress'の別のフィールドに格納し、次の' TextChanged'に、現在の 'Text'を比較して以前の 'Text'の結果とキーボード入力の有無を示します。 – jmcilhinney