2016-03-26 3 views
-1

Как я могу сказать, обнаружить определенный текст в списке и заменить его конкретным текстом. Например:C# - Заменить текст в ListBox

 private void timer1_Tick(object sender, EventArgs e) 
    { 
     if(listBox1.Text.Contains("Hi")) 
     { 
      // replace with Hello 
     } 
    } 
+0

Вы говорите о Winforms ListBox? – Steve

ответ

3

В WinForms, вы могли бы сделать это следующим образом:

if(listBox1.Items.Cast<string>().Contains("Hi")){ //check if the Items has "Hi" string, case each item to string 
    int a = listBox1.Items.IndexOf("Hi"); //get the index of "Hi" 
    listBox1.Items.RemoveAt(a); //remove the element 
    listBox1.Items.Insert(a, "Hello"); //re-insert the replacement element 
} 
0

В WinForm ListBox, свойство Text содержит текст выбранного элемента.
(я предполагаю, что у вас есть все строковые элементы)

Если вам нужно найти текст по элементу и изменить его с чем-то другим вам нужно только найти индекс элемента в коллекции Items, а затем заменить непосредственно фактический текст с новым.

int pos = listBox1.Items.IndexOf("Hi"); 
if(pos != -1) listBox1.Items[pos] = "Hello"; 

Заметим также, что IndexOf возвращает -1, если строка нет, поэтому нет необходимости добавлять еще один чек, чтобы найти, если строка в списке или нет

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