2010-01-09 7 views
0

나는 VB 양식에 1 개의 텍스트 상자와 1 개의 목록 상자가 있습니다.visual basic List.box 질문

중복 항목을 확인하고 싶습니다. textbox.text1 및 listbox.list 항목과 비교하십시오.

및 textbox.text1 값이 '3333'이고 listbox.list 여러 값이 경우

'1111' '2222' '3333' '4444'

이 어떻게 중복 검사 루틴과 같은 그러한 구현하는 방법?

감지 할 경우 현재의 텍스트 1 값과 비교하고 목록 상자의

값 중 하나와 비교 감지 중복, 당신은에 문자열을 삽입하는 가정 사전

+0

당신이 VB6 또는 VB.NET을 사용하고 있습니까? –

+0

ListBox에 추가 할 개체 유형은 무엇입니까? –

답변

2

에 메시지 박스를

감사를 팝업 할 그렇다면 당신의 ListBox 당신은 이것을 할 수 있습니다 :

Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 
    Dim x As String 
    For Each x In ListBox1.Items 
     If (x = TextBox1.Text) Then 
      MessageBox.Show("Error") 
      Return 
     End If 
    Next 
    ListBox1.Items.Add(TextBox1.Text) 
End Sub 

Value라는 속성을 가진 또 다른 유형의 객체 인 경우 작은 c hange :

Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 
    Dim x As Foo 
    For Each x In ListBox1.Items 
     If (x.Value = TextBox1.Text) Then 
      MessageBox.Show("Error") 
      Return 
     End If 
    Next 
    ListBox1.Items.Add(TextBox1.Text) 
End Sub 
1

ListBox 문자열이 포함되어 있다고 가정하면, 당신은 일치를 확인하기 위해 Items 수집의 Contains 방법을 사용할 수 있습니다. 예 (수 있도록 '_theListBox'라는 ListBox와 형태, '_theTextBox'라는 TextBox와 '_theLabel'라는 Label) :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    _theListBox.Items.AddRange(New String() {"aaaa", "bbbb", "cccc", "dddd"}) 
End Sub 

Private Sub _theTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _theTextBox.TextChanged 
    If ListBoxContainsItem(_theListBox, _theTextBox.Text) Then 
     _theLabel.Text = "It's a match" 
    Else 
     _theLabel.Text = "" 
    End If 
End Sub 

Private Function ListBoxContainsItem(ByVal lb As ListBox, ByVal text As String) As Boolean 
    ' check if the string is present in the list ' 
    Return lb.Items.Contains(text) 
End Function 
+0

+1 contains 메소드를 사용하면 좋은 점이 있지만 그 이유는 무엇인가? –

+0

@ 마크 : 방법 만들기에 관한; 구현 세부 사항을 캡슐화하기 만하면됩니다. 이 특별한 경우에는 꼭 필요한 것은 아니지만 검사가 여러 이유로 코드에서 여러 가지 이유로 수행되어 Contains 메소드가 올바르게 수행하지 못한다는 것을 감지했다고 가정 해 봅시다 (변경된 요구 사항, 첫 번째 * n * 문자 만 사용해야 함). 체크 한, 또는 무엇이든) 변경을 할 수있는 곳은 오직 한 곳 밖에 없으며 대부분의 코드는 그것에 대해 알지 못할 것입니다. –