jfshimul Ответов: 2

Как остановить запуск события флажка перед изменением состояния в форме windows C#?


Привет,
при проверке флажков несколько раз это работало, а некоторое время-нет?
Я обнаружил, что даже если я установил флажок, все равно его свойство ложно . Как я могу это исправить?

Что я уже пробовал:

private void checkPOD_CheckedChanged(object sender, EventArgs e)
       {
           if (checkMobAd.Checked)
           {
               txtPOD1.ReadOnly = false;
           }
           else
           {
               txtPOD1.Clear();
               txtPOD1.ReadOnly = true;
           }
       }

2 Ответов

Рейтинг:
5

OriginalGriff

Я бы заподозрил, что это работает каждый раз: это определенно работает для меня, и я был бы удивлен, если бы такая ошибка оставалась незамеченной в течение стольких лет.
Я подозреваю, что он просто не делает того, что вы ожидаете, потому что он не отслеживает тот же флажок, который вызывает срабатывание события. Попробуйте изменить его, чтобы использовать фактический флажок, и посмотреть, что произойдет:

private void checkPOD_CheckedChanged(object sender, EventArgs e)
    {
    CheckBox cb = sender as CheckBox;
    if (cb != null)
        {
        if (cb.Checked)
            {
            txtPOD1.ReadOnly = false;
            }
        else
            {
            txtPOD1.Clear();
            txtPOD1.ReadOnly = true;
            }
        }
    }


Рейтинг:
20

Midi_Mick

Мне кажется, что вы проверяете неправильный контроль. Событие прикреплено к checkPOD, но флажок, на который вы смотрите, - это checkMoAd.