Страница: 1 | 2 | 
		
		
			
	
		 
		
			
  
    |   | 
    
Вопрос: Поиск по ListBox
     | 
    
Добавлено: 06.12.10 01:39
     | 
      | 
  
		
			
			  
    
      
Автор вопроса:   SlayerNik
       | 
    
    
      
Помогите пожалуйста сделать поиск по ListBox
 
допустим в textbox пишу слово, нажимаю кнопку, и нужно чтобы выделялась та строчка листбокса где есть такое слово, либо если такого нет чтобы выскакивало "нечего не найдено" 
Ответить
        | 
    
  
		
			
		
		
			
		
	  
	  
    
      
Номер ответа: 2 Автор ответа:
   DimDoc
  
 
  Вопросов: 21 Ответов: 104 
       | 
      
 Профиль |  | #2
       | 
Добавлено:  29.12.10 12:42
       | 
    
    
      
например так:
 
-  
 
-     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  
-         TextBox1.Text = ""
  
-         With ListBox1.Items
  
-             .Add("МП-Ком правда")
  
-             .Add("Tanya")
  
-             .Add("Shannon")
  
-             .Add("Московская правда")
  
-             .Add("Московский комсомолец")
  
-             .Add("Московские новости")
  
-             .Add("Johnny")
  
-             .Add("Mike")
  
-             .Add("Derek")
  
-             .Add("Scotty")
  
-             .Add("МП-Сов Рос")
  
-             .Add("Scott")
  
-             .Add("Tyna")
  
-             .Add("Diana")
  
-             .Add("Chris")
  
-             .Add("Stanley")
  
-             .Add("Kamal")
  
-             .Add("МП-Куряд")
  
-             .Add("Молоко")
  
-             .Add("Кефир")
  
-             .Add("Каша")
  
-             .Add("Сливки")
  
-             .Add("Слава")
  
-             .Add("Камаз")
  
-             .Add("Молозиво")
  
-             .Add("Сигареты")
  
-             .Add("Марка")
  
-             .Add("Магнолия")
  
-             .Add("Мурка")
  
-             .Add("Стрела")
  
-         End With
  
-     End Sub
  
-  
 
-     Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
  
-         Dim countSymbol As Integer = Len(TextBox1.Text) 
 
-         Dim intSearchResult As Integer 
 
-         Dim strFind As String = UCase(TextBox1.Text) 
 
-  
 
-         ListBox2.Items.Clear()
  
-  
 
-         For i = 0 To ListBox1.Items.Count - 1
  
-             intSearchResult = InStr(UCase(Mid(ListBox1.Items(i), 1, countSymbol)), strFind)
  
-             If intSearchResult > 0 Then ListBox2.Items.Add(ListBox1.Items(i))
  
-         Next i
  
-  
 
-         If ListBox2.Items.Count = 0 And Not (countSymbol = 0) Then MessageBox.Show("Искомая строка: " & strFind & " не найдена", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
  
-  
 
-     End Sub
  
 
  
Ответить
        | 
    
  
	  
	  
    
      
Номер ответа: 4 Автор ответа:
   DimDoc
  
 
  Вопросов: 21 Ответов: 104 
       | 
      
 Профиль |  | #4
       | 
Добавлено:  29.12.10 14:09
       | 
    
    
      
почему ужас?
 
я новичек... а код работает исправно.
 
может так будет Не Ужас?
 
-  
 
-  Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
  
-         Dim searchString As String = Trim(LCase(TextBox2.Text)) 
 
-         Dim countchar As Integer = Len(searchString) 
 
-         ListBox2.Items.Clear()
  
-         If countchar = 0 Then
  
-             Exit Sub
  
-         Else
  
-             For I = 0 To ListBox1.Items.Count - 1
  
-                 Dim StringName As String = Trim(LCase(Mid(ListBox1.Items(I), 1, countchar))) 
 
-                 Dim mChar As Boolean = String.Equals(StringName, searchString) 
 
-  
 
-                 If mChar = True Then
  
-                     ListBox2.Items.Add(ListBox1.Items(I))
  
-                 End If
  
-             Next
  
-         End If
  
-     End Sub
  
-  
 
- Если опять УЖАС... Предложите, как правильно?
  
 
  
Ответить
        | 
    
  
	  
	  
    
      
Номер ответа: 6 Автор ответа:
   DimDoc
  
 
  Вопросов: 21 Ответов: 104 
       | 
      
 Профиль |  | #6
       | 
Добавлено:  29.12.10 14:59
       | 
    
    
      
чтобы выделялась найденная строка...
 
установите свойство listbox1.SelectionMode = MultiExtended
 
и код
 
-  
 
-  Private Sub Btnsearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnsearch.Click
  
-         Dim searchString As String = Trim(LCase(TextBox3.Text)) 
 
-         Dim countchar As Integer = Len(searchString) 
 
-         Dim searchOk As Boolean = False
  
-  
 
-         ListBox1.SelectedItems.Clear() 
 
-         ListBox2.Items.Clear()
  
-  
 
-         If countchar = 0 Then
  
-             Exit Sub
  
-         Else
  
-             For I = 0 To ListBox1.Items.Count - 1
  
-                 Dim StringName As String = Trim(LCase(Mid(ListBox1.Items(I), 1, countchar))) 
 
-                 Dim mChar As Boolean = String.Equals(StringName, searchString) 
 
-  
 
-                 If mChar = True Then
  
-                     searchOk = True
  
-                     ListBox1.SelectedIndex = I
  
-                     ListBox2.Items.Add(ListBox1.Items(I))
  
-                 End If
  
-             Next
  
-         End If
  
-  
 
-         If Not (searchOk = True) Then MessageBox.Show("Строка """ & searchString & """ не найдена", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
  
-  
 
-     End Sub
  
 
  
 
Ответить
        | 
    
  
	  
    
      
Номер ответа: 7 Автор ответа:
   DimDoc
  
 
  Вопросов: 21 Ответов: 104 
       | 
      
 Профиль |  | #7
       | 
Добавлено:  29.12.10 15:05
       | 
    
    
      | 
 в NET не принято юзать ф-ции усаревшего языка 
 
это я понял. Спасибо!!!
 
 
FinfString(string s) - вернёт только первое вхождение, верно?
 
а как вернуть все вхождения?
Ответить
        | 
    
  
	  
	  
	  
    
      
Номер ответа: 10 Автор ответа:
   DimDoc
  
 
  Вопросов: 21 Ответов: 104 
       | 
      
 Профиль |  | #10
       | 
Добавлено:  29.12.10 15:28
       | 
    
    
      
так правильно?
 
-  
 
-  Private Sub BtnFindString_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFindString.Click
  
-         Dim searchString As String = TextBox4.Text 
 
-         If Not (searchString = String.Empty) Then
  
-             Dim i As Integer = ListBox1.FindString(searchString)
  
-             If Not (i = -1) Then
  
-                 ListBox1.SelectedIndex = i
  
-             Else
  
-                 MessageBox.Show("Строка """ & searchString & """ не найдена", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
  
-             End If
  
-         End If
  
-     End Sub
  
-  
 
 
  
Ответить
        | 
    
  
	  
    
      
Номер ответа: 11 Автор ответа:
   DimDoc
  
 
  Вопросов: 21 Ответов: 104 
       | 
      
 Профиль |  | #11
       | 
Добавлено:  29.12.10 15:30
       | 
    
    
      | 
 опять ты за свое... 
 
Это пока я писал, Вы уже ответили, а я не видел....
Ответить
        | 
    
  
	  
    
      
Номер ответа: 12 Автор ответа:
   DimDoc
  
 
  Вопросов: 21 Ответов: 104 
       | 
      
 Профиль |  | #12
       | 
Добавлено:  29.12.10 15:31
       | 
    
    
      | 
с  с лямбда-выражениями  не знаком....
Ответить
        | 
    
  
	  
	  
    
      
Номер ответа: 14 Автор ответа:
   DimDoc
  
 
  Вопросов: 21 Ответов: 104 
       | 
      
 Профиль |  | #14
       | 
Добавлено:  29.12.10 16:10
       | 
    
    
      
исправил...
 
-  
 
-  Private Sub BtnFindString_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFindString.Click
  
-         Dim searchString As String = TextBox4.Text 
 
-         ListBox1.SelectedItems.Clear() 
 
-  
 
-         If Not (String.IsNullOrEmpty(searchString)) Then
  
-             Dim i As Integer = ListBox1.FindString(searchString)
  
-             If i <> ListBox.NoMatches Then
  
-                 ListBox1.SelectedIndex = i
  
-             Else
  
-                 Dim outString As String = String.Format("Строка '{0}' не найдена", searchString)
  
-                 MessageBox.Show(outString, "", MessageBoxButtons.OK, MessageBoxIcon.Information)
  
-             End If
  
-         End If
  
-     End Sub
  
-  
 
 
  
 
 
попробую цикл do...while
Ответить
        | 
    
  
	  Страница: 1 | 2 | 
 
		
			Поиск по форуму