2015-07-02 2 views
0

Я знаю, что этот вопрос был отправлен здесь уже несколько раз, но я прочитал темы и ничего не работает для меня, поэтому я решил задать здесь.Проверьте, содержит ли Listbox определенный элемент

Я просто хочу проверить, нет ли определенной строки в моем списке. Я пробовал

listBox.Items.Contains("stringToMatch") 

но я ничего не получаю.

Я также попытался

foreach (var item in form1.filterTypeList.Items) 
       { 
        if (item.ToString() == "stringToMatch") 
        { 
         break;    
        } 

Он не находит ничего. Зачем? Как я могу это решить?

+5

Используйте [ListBox.FindStringExact] (https://msdn.microsoft.com/de-de/library/81wes5yz%28v=vs. 110% 29.aspx) – TaW

+0

ничего себе! Это помогло! Теперь он работает нормально. Большое спасибо за ваш ответ! –

ответ

0

Попробуйте использовать этот путь ... FindByText

strig toMatch = "stringToMatch"; 
ListItem item = ListBox1.Items.FindByText(toMatch); 
if (item != null) 
{ 
    //found 
} 
else 
{ 
    //not found 
} 
+0

Не работает. Он не может найти ListItem и FindByText! –

+0

Это функция WPF, но OP использует Winforms! – TaW

0

Пожалуйста, попробуйте, как показано ниже. Я делаю для цикла элементы списка, чтобы искать строку на основе тега элемента или текста элемента.

for (int i = 0; i <= ListView.Items.Count - 1; i++) 
      { 
       itmX = ListView.Items.Item(i); 

       if (itmX.Text.ToString() = "stringToMatch") 
       { 
        break;    
       } 
      } 

ИЛИ

for (int i = 0; i <= ListView.Items.Count - 1; i++) 
    { 
     itmX = ListView.Items.Item(i); 

     if (itmX.Tag.ToString() = "stringToMatch") 
     { 
      break;    
     } 
    } 
+2

Добро пожаловать в переполнение стека! В дополнение к вашему коду вы должны опубликовать краткое объяснение того, как он решает вопрос. Например, что делает этот код работать там, где не удалось выполнить код OP? – neontapir

0

его так просто сейчас, вы просто сначала найти индекс этого элемента в коллекции элементов ListBox, а затем использовать эту фикцию из ListBox listBox1.FindStringExact.

private void FindMySpecificString(string searchString) 
{ 
    // Ensure we have a proper string to search for. 
    if (searchString != string.Empty) 
    { 
     // Find the item in the list and store the index to the item. 
     int index = listBox1.FindStringExact(searchString); 
     // Determine if a valid index is returned. Select the item if it is valid. 
     if (index != ListBox.NoMatches) 
     listBox1.SetSelected(index,true); 
     else 
     MessageBox.Show("The search string did not find any items in the ListBox that exactly match the specified search string"); 
    } 
} 

посетите следующий веб-сайт для получения дополнительной разъяснения и примеры https://msdn.microsoft.com/en-us/en-en/library/81wes5yz(v=vs.110).aspx

Смежные вопросы