2010-11-21 5 views
0

나는 내 양식에 4 개의 항목이 있습니다 ......... 견인 목록 상자 하나의 단추와 하나의 텍스트 상자 나는 많은 항목이있는 목록 상자가 있습니다. ... 목록 상자 'A'의 목록 상자 'B'에있는 항목이 필요합니다. 단계는 다음과 같습니다. 수행하려는 항목 ...........목록 상자에서 문자열 찾기에 대한 해결책 찾기

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가없는, 그리고 내가 윈폼 개발을 완료 한 이후 오랜만이야, 그래서 정확한 이벤트 이름 또는 다른 물건이 없을 수 있지만, 아이디어를 얻으십시오. 이것은 또한 제 코드가 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); 

나는이 모든 내 머리 위로 떨어져이다 말했듯이, 그래서 코드 정확하지 않을 수 있습니다. 그러나 잘하면 당신은 아이디어를 얻는다.

관련 문제