Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 22.03.2016
Сообщений: 9
1

Как узнать последний выбранный пункт в CheckedListBox ?

10.02.2017, 00:54. Показов 2781. Ответов 4
Метки нет (Все метки)

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

Для чего это.
Есть СheckedListBox с 6-тью пунктами. Одновременно могут быть выбраны такие комбинации:
1) только 1-ый пункт.
2) только 6-ой пункт.
3) любой из 2, 3, 4 (и их сочетание)

И нужно обрабатывать, что бы если были выбраны 2,3 и пользователь отметил 1, то 2 и 3 сбрасывались.
Если отмечен 6, то при выборе [2,3,4] шестой сбрасывался.

А для этого надо понимать какой был выбран в момент выбора
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2017, 00:54
Ответы с готовыми решениями:

Spiner как проверить выбранный пункт
Здравствуйте, у меня есть Spiner со списком, выбранный элемент задаю TextView-у но не как не...

Как сделать, чтобы Окрашивался выбранный пункт меню, в который перешёл
Есть готовое меню. Как сделать, чтобы при переходе по Выбранному пункту меню, он был окрашен....

Программно отметить пункт в CheckedListBox
Привет всем, мне нужна помощь. Язык С# мне надо, что бы при высвечивании надписи "правильно" в...

Выбранный пункт combobox
В цикле добавляю в комбобокс пункты через combobox1.additem. Далее определяю текст выбранного...

4
1158 / 880 / 513
Регистрация: 09.04.2014
Сообщений: 2,084
10.02.2017, 12:47 2
Лучший ответ Сообщение было отмечено ravs как решение

Решение

Цитата Сообщение от ravs Посмотреть сообщение
Не могу понять как можно узнать, какой пункт был выбран для обработки его в SelectedIndexChanged.
тот у которого индекс равен SelectedIndex?
1
378 / 375 / 213
Регистрация: 29.03.2013
Сообщений: 867
10.02.2017, 13:17 3
ravs, я вот тут набыдлокодил вариант, выбирающий только первый пункт, не знаю насколько это правильно (подозреваю, что можно проще):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (e.NewValue == CheckState.Checked)
                if (checkedListBox1.Items[e.Index].ToString().Contains("Первый пункт") == true)
                    {
                        for (int i = 0; i < checkedListBox1.Items.Count; ++i)
                            if (e.Index != i) checkedListBox1.SetItemCheckState(i, CheckState.Unchecked);
               
                    }
                else if (checkedListBox1.CheckedItems.Contains("Первый пункт") == true)
                {
                    for (int i = 0; i < checkedListBox1.Items.Count; ++i)
                        if (e.Index != i) checkedListBox1.SetItemCheckState(i, CheckState.Unchecked);
                    checkedListBox1.SetItemCheckState(0, CheckState.Checked);
                    e.NewValue = e.CurrentValue;
                }
        }
1
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
10.02.2017, 13:30 4
Лучший ответ Сообщение было отмечено ravs как решение

Решение

Как-то так получается
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (e.NewValue == CheckState.Checked)
                if ((e.Index==0)||(e.Index==5))
                    {
                        for (int i = 0; i < checkedListBox1.Items.Count; ++i)
                            if (e.Index != i) checkedListBox1.SetItemCheckState(i, CheckState.Unchecked);
               
                    }
                else 
                {
                    for (int i = 0; i < checkedListBox1.Items.Count; ++i)
                        if ((i==0)||(i==5)) checkedListBox1.SetItemCheckState(i, CheckState.Unchecked);
                }
        }
1
0 / 0 / 0
Регистрация: 22.03.2016
Сообщений: 9
10.02.2017, 16:38  [ТС] 5
Большое спасибо, ребята!

Я пытался сделать через событие SelectedIndexChanged, но так как не знал о существовании свойства SelectedIndex, которое подсказал nedel, ничего не получалось.

А если обрабатывать событие ItemCheck, как подсказал Aferuga, то код становится совсем красивым.

Благодарю всех откликнувшихся.
0
10.02.2017, 16:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2017, 16:38
Помогаю со студенческими работами здесь

как последний пункт сделать другого цвета
вот код. не получается посдледний пункт сделать другого цвета #lefttitle{width:200px; ...

Как узнать выбранный компонент
Пишу прогу которая использует сканер штрих кодов. Штрих код сохраняется в базе (Firebird) в...

Выделить выбранный пункт меню
Всем привет! Есть код. &lt;div id=&quot;navouter&quot;&gt; &lt;div id=&quot;nav&quot;&gt; &lt;ul class=&quot;lavalamp&quot;...

Как узнать имя или индекс из списка CheckedListBox?
Помогите пожалуйста, ни как не могу справиться.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru