Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Проверка изменения выбранного


Автор: ДобренькийПапаша 26.8.2009, 08:17
Есть форма, на ней текстбоксы и два радиобатона в групбоксе (мужской пол, женский пол). При загрузке формы прогружаются данные о человеке, то есть может быть выбран как М так и Ж. У пользователя есть возможность изменения пола (смешно звучит [ну мало ли, при вводе ошиблись]), мне надо проверить был ли изменён пол в выражении if(). Как это сделать по-человечески? (Получается только по-идиотски) 

Автор: Grok 26.8.2009, 09:03
не знаю по человечески ли smile , но если просто сравнить данные при загрузке с текущими ?

Автор: ДобренькийПапаша 26.8.2009, 10:04
а ты предложи как именно? 

Автор: Delegat 26.8.2009, 10:32
Берем две переменные. При загрузке формы в первую вносим значение подгружаемого поля(м/ж), а на событии сохранения (ну или чего там) во вторую заносим значение текущего поля. И сравниваем первое со вторым. Как то так  smile 

Автор: ДобренькийПапаша 26.8.2009, 10:43
да не надо мне тут словами расписывать, вы код приведите...

Автор: Grok 26.8.2009, 11:18
просто не знаю где ты хочешь if использовать  ... 
но попробую )

допустим загружаются данные мужика ... 
создаем 2 булевские переменные  
Код

bool isMen = true;
bool wasChanged = false;


прикручиваем эвент к одному радиобатону 
Код

this.MRadioBatton.CheckedChanged += new System.EventHandler(this.RadioBatton_CheckedChanged);



метод RadioBatton_CheckedChanged
Код

private void RadioBatton_CheckedChanged(object sender, EventArgs e)
        {
            this.wasChanged = !(this.MRadioBatton.Checked == this.isMan);
        }


и дальше где-то юзаешь свой if )
Код

if (this.wasChanged)
{

}
 


где-то так )

Автор: ДобренькийПапаша 26.8.2009, 12:29
Ну вот и получится что при прогрузке уже событие сработает и поставит твой флаг в true...

Ну всё, сделал вроде, задача идиотская, я её по идиотски делал...

Событие выбора бабы и мужика вызывало один и тот же обработчик и получалась ересь...

Код

 private void rbMale_CheckedChanged(object sender, EventArgs e)
        {
            this.isManChanged =false; 
        }

        private void rbFemale_CheckedChanged(object sender, EventArgs e)
        {
            this.isManChanged = true;
        }

Автор: ДобренькийПапаша 26.8.2009, 12:59
У меня тут сложная проверка много всего и код большой, ну всё получилось...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)