2016-11-26 1 views

ответ

0

Если предположить, что вы используете WinForms , вы можете изменить свойства элементов в ListBox через Items property. Это возвращает ListBox.ObjectCollection. Вы можете индексировать эту коллекцию и изменять отдельные элементы.

Как правило, элементы в ListBox являются просто строками, поэтому присвоение новой строки соответствующему индексу в коллекции Items приведет к изменению текста в ListBox. Однако они могут быть любым типом объекта. Проверьте код, который добавляет элементы в ListBox, в первую очередь, чтобы убедиться, что они являются строками. Если они что-то еще, вам нужно соответствующим образом изменить эту структуру данных.

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

Например:

For i As Integer = 0 to (myListBox.Items().Count - 1) 
    myListBoxItems.Items(i) = myListBox.Items(i) + ".gz" 
Next 

Если это не гарантирует, что все элементы в ListBox должны иметь .gz расширение добавил к ним, вам нужно будет использовать условный оператор внутри тела цикла, что сначала проверяет текущее значение строки, чтобы решить, следует ли добавлять расширение.

+0

Это дало ошибку при выполнении кода, 'Необработанное исключение типа«System.ArgumentOutOfRangeException»произошло в System.Windows.Forms.dll', 'Дополнительная информация: InvalidArgument = Значение« 1 »недопустимо для« index »., Хотя я нашел обходное решение, поэтому проблема решена сейчас, спасибо за попытку в любом случае. – Joey

+1

Цикл должен быть «For i As Integer = 0 to myListBox.Items(). Count - 1' (с: минус один) –

+0

Конечно, это должно быть. Спасибо, @Oliver! В будущем, пожалуйста, не стесняйтесь редактировать, чтобы исправить ошибки кода в моих ответах. Я знаю, что не всем это нравится, но я не вижу в этом ничего плохого. Я часто пропускаю комментарии, потому что получаю сотни уведомлений в день, и у меня просто нет времени, чтобы пройти через все их. Мне довелось увидеть это, поэтому я уже исправил код. –

0

Для минимального решения, попробуйте следующий код

Dim MyList = (From lst In ListBox1.Items.Cast(Of String)() Select lst & ".gz").ToList 

ListBox1.DataSource = MyList