Checkedlistbox c как проверить выбранные элементы
Перейти к содержимому

Checkedlistbox c как проверить выбранные элементы

  • автор:

Определить все выбранные элементы listbox C#

Есть листбокс с месяцами. Нужно в цикле пройтись и определить какие месяца выбраны (свойство на несколько элементов включено). Как построить проверку?

Дополнен 4 года назад

Пробовал сделать так, но он срабатывает только на первый выбранный элемент. на остальные не реагирует.
sqlPar = null;
ch = false;
for (i = 0; i if (this.MonthLB.SelectedIndex == i)
if (!ch)
sqlPar = «MONTH(a.datepriem) OR MONTH(a.datepriem) container-for-answers»>

Голосование за лучший ответ
listBox.SelectedItems
upd:listBox1.SelectedIndices индексы выбранных элементов
Артем СоболевУченик (195) 4 года назад

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

diablo Мыслитель (7019) foreach (object s_item in listBox1.SelectedItems) MessageBox.Show(s_item.ToString());

Checkedlistbox c как проверить выбранные элементы

Элемент CheckedListBox представляет симбиоз компонентов ListBox и CheckBox. Для каждого элемента такого списка определено специальное поле CheckBox, которое можно отметить.

Все элементы задаются в CheckedListBox задаются в свойстве Items . Также, как и для элементов ListBox и ComboBox, мы можем задать набор элементов. По умолчанию для каждого добавляемого нового элемента флажок не отмечен:

Элемент CheckedListBox в Windows Forms

Чтобы поставить отметку в checkBox рядом с элементом в списке, нам надо сначала выделить элемент и дополнительным щелчком уже установить флажок. Однако это не всегда удобно, и с помощью свойства CheckOnClick и установке для него значения true мы можем определить сразу выбор элемента и установку для него флажка в один клик.

Другое свойство MultiColumn при значении true позволяет сделать многоколоночный список, если элементы не помещаются по длине:

Свойство MultiColumn в CheckedListBox

Выделенный элемент мы также можем получить с помощью свойства SelectedItem , а его индекс — с помощью свойства SelectedIndex . Но это верно только, если для свойства SelectionMode установлено значение One , что подразумевает выделение только одного элемента.

При установке для свойства SelectionMode значений MultiSmple и MultiExtended можно выбрать сразу несколько элементов, и тогда все выбранные элементы будут доступны в свойстве SelectedItems , а их индексы — в свойстве SelectedIndeces .

И поскольку мы можем поставить отметку не для всех выбранных элементов, то чтобы отдельно получить отмеченные элементы, у CheckedListBox имеются свойства CheckedItems и CheckedIndices .

Для добавления и удаления элементов в CheckedListBox определены все те же методы, что и в LstBox:

  • Add(item) : добавляет один элемент
  • AddRange(array) : добавляет в список массив элементов
  • Insert(index, item) : добавляет элемент по определенному индексу
  • Remove(item) : удаляет элемент
  • RemoveAt(index) : удаляет элемент по определенному индексу
  • Clear() : полностью очищает список

SetItemChecked и SetItemCheckState

К особенностям элемента можно отнести методы SetItemChecked и SetItemCheckState . Метод SetItemChecked позволяет установить или сбросить отметку на одном из элементов. А метод SetItemCheckState позволяет установить флажок в одно из трех состояний: Checked (отмечено), Unchecked (неотмечено) и Indeterminate (промежуточное состояние):

checkedListBox1.SetItemChecked(0, true); checkedListBox1.SetItemCheckState(1, CheckState.Indeterminate);

Практическое руководство. Определение отмеченных элементов в элементе управления CheckedListBox в Windows Forms

При представлении данных в элементе управления CheckedListBox Windows Forms можно выполнить итерацию по коллекции, хранящейся в свойстве CheckedItems, или выполнить пошаговый просмотр списка с помощью метода GetItemChecked, чтобы определить, какие элементы отмечены. Метод GetItemChecked принимает порядковый номер элемента в качестве аргумента и возвращает true или false . Вопреки тому, что можно было бы ожидать, свойства SelectedItems и SelectedIndices не определяют, какие элементы отмечены, они определяют, какие элементы выделены.

Определение отмеченных элементов в элементе управления CheckedListBox

  1. Выполните итерацию по коллекции CheckedItems, начиная с 0, так как нумерация в коллекциях начинается с нуля. Обратите внимание, что этот метод возвращает номер элемента в списке отмеченных элементов, а не в общем списке. Поэтому если первый элемент в списке не отмечен, а второй — отмечен, приведенный ниже код отобразит текст вида «Checked Item 1 = MyListItem2».
' Determine if there are any items checked. If CheckedListBox1.CheckedItems.Count <> 0 Then ' If so, loop through all checked items and print results. Dim x As Integer Dim s As String = "" For x = 0 To CheckedListBox1.CheckedItems.Count - 1 s = s & "Checked Item " & (x + 1).ToString & " = " & CheckedListBox1.CheckedItems(x).ToString & ControlChars.CrLf Next x MessageBox.Show(s) End If 
// Determine if there are any items checked. if(checkedListBox1.CheckedItems.Count != 0) < // If so, loop through all checked items and print results. string s = ""; for(int x = 0; x < checkedListBox1.CheckedItems.Count ; x++) < s = s + "Checked Item " + (x+1).ToString() + " = " + checkedListBox1.CheckedItems[x].ToString() + "\n"; >MessageBox.Show(s); > 
// Determine if there are any items checked. if(checkedListBox1->CheckedItems->Count != 0) < // If so, loop through all checked items and print results. String ^ s = ""; for(int x = 0; x < checkedListBox1->CheckedItems->Count; x++) < s = String::Concat(s, "Checked Item ", (x+1).ToString(), " = ", checkedListBox1->CheckedItems[x]->ToString(), "\n"); > MessageBox::Show(s); > 
Dim i As Integer Dim s As String s = "Checked Items:" & ControlChars.CrLf For i = 0 To (CheckedListBox1.Items.Count - 1) If CheckedListBox1.GetItemChecked(i) = True Then s = s & "Item " & (i + 1).ToString & " = " & CheckedListBox1.Items(i).ToString & ControlChars.CrLf End If Next MessageBox.Show(s) 
int i; string s; s = "Checked items:\n" ; for (i = 0; i > MessageBox.Show (s); 
int i; String ^ s; s = "Checked items:\n" ; for (i = 0; i Items->Count-1); i++) < if (checkedListBox1->GetItemChecked(i)) < s = String::Concat(s, "Item ", (i+1).ToString(), " = ", checkedListBox1->Item[i]->ToString(), "\n"); > > MessageBox::Show(s); 

См. также

Совместная работа с нами на GitHub

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

WPF. C#. Как узнать, какой элемент выделен в ListBox, если список стилизован?

ClientsOnlineList — Список. Содержит поля UserName, id и т.д. Как мне при выделении списка- узнать- какой именно ClientsOnlineList.Id был выделен? Так как список стилизованный- я потерялся в связях и как узнать выделенный элемент?

Отслеживать

задан 21 окт 2016 в 23:21

Rakzin Roman Rakzin Roman

5,700 12 12 золотых знаков 79 79 серебряных знаков 176 176 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Создайте свойство (тип вы сами знаете) CurrentClient и привяжете его к SelectedItem выбор в ListBox будет доступен через это свойство.

 /// /// Это коллекция для заполнения ListBox /// private ObservableCollection _Animals; public ObservableCollection Animals < get < return _Animals; >set < if (_Animals == value) return; _Animals = value; PropertyChanged(this, new PropertyChangedEventArgs(nameof(Animals))); >> /// /// Текущее выбранное животное в ListBox /// private Animal _CurrentAnimal; public Animal CurrentAnimal < get < return _CurrentAnimal; >set < if (_CurrentAnimal == value) return; _CurrentAnimal = value; PropertyChanged(this, new PropertyChangedEventArgs(nameof(CurrentAnimal))); >> 
 " SelectedItem=""/> 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *