Codeby web-security - новый курс от Codeby Security School

Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фазинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...


Как программно выделить строку в listbox?

В этой небольшой статье хотелось бы показать на простом примере, как можно программно выделить строку в listBox. И так, сначала создадим Windows Forms приложение, а затем добавим на форму элемент управления listBox, который заполним несколькими любыми значениями.

каркас приложения

Чтобы программно выделить строку в listbox, нужно воспользоваться уже готовым методом SetSelected, в который в качестве первого параметра необходимо передать индекс выделяемого элемента, а в качестве второго параметра значение true, например:

private void button1_Click(object sender, EventArgs e)
{
listBox1.SetSelected(int.Parse(textBox1.Text), true);
}

результат

выделение строки по индексу элемента

Если Вы не знаете индекс элемента, но при этом знаете его значение, то тогда Вы можете выделить строку, например следующим способом.

private void button1_Click_1(object sender, EventArgs e)
{
//ищем указанный элемент и получаем его индекс
int index =  listBox1.FindString(textBox1.Text);
if (index >= 0)
{
//выделяем строку
listBox1.SetSelected(index, true);
}
}

Результат

выделение строки по значению элемента

Выделение нескольких строк в listbox

Если Вам нужно выделить несколько строк в listBox (multiselect), то тогда сначала установите свойство SelectionMode, используя одноименное перечисление, в одно из следующих значений: SelectionMode.MultiSimple или SelectionMode.MultiExtended. Разница между значениями заключается в том, что в первом случаи Вы можете выделить несколько строк только мышкой, а во втором используя клавиатуру, например, нажав сочетание клавиш: Shift + стрелка вверх или вниз.


Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды codeby - "Комплекс мер по защите персональных данных, анонимности в интернете и не только" Подробнее ...


listBox1.SelectionMode = SelectionMode.MultiSimple;
//выделяем первую и последнюю строку в listbox
listBox1.SetSelected(0, true);
listBox1.SetSelected(2, true);

результат

выделение нескольких строк

Выделение строки сразу в двух элементах listbox

И в конце рассмотрим ещё один простой пример, но сначала добавим на форму ещё один listBox и так же заполним его несколькими значениями.

два элемента управления listbox

Задача: при ручном выделении строки в listbox1 должна, автоматически выделится строка с таким же индексом в listBox2. Решение: сначала подписываемся на событие SelectedIndexChanged.

подписка на событие SelectedIndexChanged

private void listBox1_SelectedIndexChanged(object sender,EventArgs e)
{
}

А затем выделяем нужную строку в listbox2

private void listBox1_SelectedIndexChanged(object sender,EventArgs e)
{
listBox2.SetSelected(listBox1.SelectedIndex, true);
}

С помощью свойства SelectedIndex получаем текущий индекс выделенного элемента в listbox1, который затем используем, чтобы выделить строку в listbox2.

выделение двух строк

Читайте также:


Codeby Market от Сodeby

Мы запустили свой магазин CodebyMarket Equipment for InfoSec. Уже добавили RaspberryAlfa Long-RangeOrange PiArduino и многое другое. Купить Pentesting Devices