2010-11-21 12 views
0

私は自分のフォームに4つのアイテムを持っています......... towリストボックス、ボタン1つ、テキストボックス 私はリストボックス 'A' ... リストボックス 'B'からリストボックス 'A'の項目が必要です 手順は以下の通りです...実行するのが好き...リストボックスに文字列を見つけるための解決策を見つける

1 )テキストボックスに単語または文字を入力する 2)ボタンを押してください 3)リストがリストボックス 'B'に表示されています.........それは文字か文字列開始リストボックス 'A'に書いてありますテキストボックス(一致の場合)

リストボックス 'B'に入れることができる項目がリストボックス 'A' ()になっているヘルプが必要です。開始文字列またはテキストをテキストボックスに入力します。 私を解決しようとしてください..........

答えて

3

わかりません。テキストボックスの '変更されたイベント'を使用すると、ボタンの代わりに良いトリガーになります。リストアイテムを繰り返し、String.StartsWithとの一致を確認してください。たとえば:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged 
    ListBox2.Items.Clear() 
    If TextBox1.Text.Length > 0 Then 
     For index As Integer = 0 To ListBox1.Items.Count - 1 
      Dim txt = ListBox1.Items(index).ToString() 
      If txt.StartsWith(TextBox1.Text, StringComparison.CurrentCultureIgnoreCase) Then 
       ListBox2.Items.Add(txt) 
      End If 
     Next 
    End If 
End Sub 
+0

簡潔な答え、まさに私が使っただろう。 –

1

私は私の前にIDEを持っていない、と私はWinFormsの開発を行ってきたので、それがしばらくしているので、私は正確なイベント名や他のものを持っていないかもしれませんが、あなたアイデアを得る。これは私のコードがC#であることを意味します。なぜなら、私はそれに慣れているからですが、あなたはVBに相当するものを見つけることができるはずです。

まず、テキストボックスの適切なイベントにバインドします。たぶんKeyPressまたはKeyUpイベントですか?またはTextChanged?テキストボックス内のテキストの変更がいつでも発生するようにします。その場合、リストボックスAの項目をループし、その値をテキストボックスのテキストと比較します。基本的な文字列の比較は、.StartsWith()などがある場合は必要です。そうでない場合は、.Substring()の基本的な使い方が有効です(テキストボックスの文字列の長さに基づいて)。

ループの可能性が高いの線に沿って何かのようになります。私が言ったように

listboxA.Items.ForEach(i => 
    {if (i.StartsWith(textboxA.Text)) listboxB.Items.Add(i);}); 

それとも...

foreach (var i in listboxA.Items) 
    if (i.StartsWith(textBoxA.Text)) 
     listboxB.Items.Add(i); 

、これはすべての私の頭の上からなので、コード正確ではないかもしれません。しかし、うまくいけば、あなたはそのアイデアを得ます

関連する問題