Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2014, 21:42   #1
diargon3455
 
Регистрация: 30.09.2013
Сообщений: 9
По умолчанию Как получить предыдущий выделеный итем в combobox?

Нужно, чтобы как только selectedindex менялся, выводилось сообщение что предыдущий выбранный итем был такой-то такой-то. Как такое реализовать?
diargon3455 вне форума Ответить с цитированием
Старый 10.12.2014, 21:58   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

WinForms? WPF?

Например, при каждом изменении выбора запоминать выбранный элемент.

Код:
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            _prevVal = _currVal;
            _currVal = comboBox1.Selected...;
        }
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 10.12.2014 в 22:05.
Alex11223 вне форума Ответить с цитированием
Старый 10.12.2014, 22:01   #3
diargon3455
 
Регистрация: 30.09.2013
Сообщений: 9
По умолчанию

winforms. А также не получится - событие SelectedIndexChanged срабатывает только после того, как index поменялся. Или я ошибаюсь?
diargon3455 вне форума Ответить с цитированием
Старый 10.12.2014, 22:04   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да, но в currVal же и будет предыдуший пока ему не присвоен новый.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.12.2014, 22:11   #5
diargon3455
 
Регистрация: 30.09.2013
Сообщений: 9
По умолчанию

Кажется это я чего-то не понимаю. Что такое currVal и prevVal. Насколько я понимаю это переменные типа string/int (selcted item/index). Так?
diargon3455 вне форума Ответить с цитированием
Старый 10.12.2014, 22:17   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну смотря что вам надо от него и что храните в нем (строки, объекты).

Код:
        private string _prevVal, _currVal;

        public Form1()
        {
            InitializeComponent();

            comboBox1.Items.Add("111");
            comboBox1.Items.Add("222");
            comboBox1.Items.Add("333");
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            _prevVal = _currVal;
            _currVal = comboBox1.SelectedItem.ToString();

            MessageBox.Show(String.Format("Текущий {0}, предыдущий {1}", _currVal, _prevVal));
        }
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.12.2014, 22:20   #7
diargon3455
 
Регистрация: 30.09.2013
Сообщений: 9
По умолчанию

Дошло. Спасибо. Сам бы не догадался

Всё таки не до конца дошло. Можете объяснить как присваивается значение _prevVal?

Последний раз редактировалось Stilet; 11.12.2014 в 07:58.
diargon3455 вне форума Ответить с цитированием
Старый 10.12.2014, 23:17   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что объяснить-то? Я не могу тут ничего объяснить, вроде и так все просто, присваиваются значения двум переменным.
Поставьте breakpoint в это место и смотрите отладчиком их значения по шагам.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.12.2014, 23:23   #9
diargon3455
 
Регистрация: 30.09.2013
Сообщений: 9
По умолчанию

Сначала объявляются переменные _prevVal и _currVal. Значения не присваиваются. Т.е. значение равно null. Дальше вы приравниваете _prevVal и _currVal. Т.е. null = null. Дальше Задаёте значение _currVal. А _prevVal получается всё такое же значение - null. Что я не так понял?
diargon3455 вне форума Ответить с цитированием
Старый 10.12.2014, 23:27   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну в первый раз конечно оно null, когда ничего еще не выбрано.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить текст нулевого элемента ComboBox wm_leviathan C# (си шарп) 7 20.04.2013 23:42
Получить значения ComboBox'a WinApi Delphi ][acker Win Api 2 17.03.2013 20:25
как получить первую букву из combobox Volkogriz Общие вопросы Delphi 17 15.02.2013 23:39
<div> наслаивается на предыдущий! AdeL1ne HTML и CSS 9 02.05.2012 12:31
ComboBox. Как получить дату? maksim_serg Microsoft Office Excel 1 06.04.2010 08:28