Как программно выделить строку в listbox?
В этой небольшой статье хотелось бы показать на простом примере, как можно программно выделить строку в listBox. И так, сначала создадим Windows Forms приложение, а затем добавим на форму элемент управления listBox, который заполним несколькими любыми значениями.
Чтобы программно выделить строку в listbox, нужно воспользоваться уже готовым методом SetSelected, в который в качестве первого параметра необходимо передать индекс выделяемого элемента, а в качестве второго параметра значение true, например:
результат
Если Вы не знаете индекс элемента, но при этом знаете его значение, то тогда Вы можете выделить строку, например следующим способом.
Результат
Выделение нескольких строк в listbox
Если Вам нужно выделить несколько строк в listBox (multiselect), то тогда сначала установите свойство SelectionMode, используя одноименное перечисление, в одно из следующих значений: SelectionMode.MultiSimple или SelectionMode.MultiExtended. Разница между значениями заключается в том, что в первом случаи Вы можете выделить несколько строк только мышкой, а во втором используя клавиатуру, например, нажав сочетание клавиш: Shift + стрелка вверх или вниз.
результат
Выделение строки сразу в двух элементах listbox
И в конце рассмотрим ещё один простой пример, но сначала добавим на форму ещё один listBox и так же заполним его несколькими значениями.
Задача: при ручном выделении строки в listbox1 должна, автоматически выделится строка с таким же индексом в listBox2. Решение: сначала подписываемся на событие SelectedIndexChanged.
А затем выделяем нужную строку в listbox2
С помощью свойства SelectedIndex получаем текущий индекс выделенного элемента в listbox1, который затем используем, чтобы выделить строку в listbox2.
Читайте также:
В этой небольшой статье хотелось бы показать на простом примере, как можно программно выделить строку в listBox. И так, сначала создадим Windows Forms приложение, а затем добавим на форму элемент управления listBox, который заполним несколькими любыми значениями.
Чтобы программно выделить строку в listbox, нужно воспользоваться уже готовым методом SetSelected, в который в качестве первого параметра необходимо передать индекс выделяемого элемента, а в качестве второго параметра значение true, например:
C#:
private void button1_Click(object sender, EventArgs e)
{
listBox1.SetSelected(int.Parse(textBox1.Text), true);
}
Если Вы не знаете индекс элемента, но при этом знаете его значение, то тогда Вы можете выделить строку, например следующим способом.
C#:
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 + стрелка вверх или вниз.
C#:
listBox1.SelectionMode = SelectionMode.MultiSimple;
//выделяем первую и последнюю строку в listbox
listBox1.SetSelected(0, true);
listBox1.SetSelected(2, true);
Выделение строки сразу в двух элементах listbox
И в конце рассмотрим ещё один простой пример, но сначала добавим на форму ещё один listBox и так же заполним его несколькими значениями.
Задача: при ручном выделении строки в listbox1 должна, автоматически выделится строка с таким же индексом в listBox2. Решение: сначала подписываемся на событие SelectedIndexChanged.
C#:
private void listBox1_SelectedIndexChanged(object sender,EventArgs e)
{
}
C#:
private void listBox1_SelectedIndexChanged(object sender,EventArgs e)
{
listBox2.SetSelected(listBox1.SelectedIndex, true);
}
Читайте также: