GOOGLE ADS

среда, 27 апреля 2022 г.

TextBox включить/отключить с помощью радиокнопки в С#

У меня есть 4 переключателя в Winform, и один из переключателей (radiobutton_4) срабатывает, чтобы включить текстовое поле, которое работает хорошо. но если изменить любую другую радиокнопку после проверки радиокнопки триггера, текстовое поле не изменится и отключится. введите описание изображения здесь

триггер радиокнопка

 private void radioButton4_CheckedChanged(object sender, EventArgs e)
{
Radioctrlvalue = "fromvalue";
textBox1.Enabled = true;
textBox2.Enabled = true;
textBox3.Enabled = true;

}

другая радиокнопка

 private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
//if projectbase point radio is checked and string variable store
Radioctrlvalue = "projectpoint";
textBox1.Enabled = false;
textBox2.Enabled = false;
textBox3.Enabled = false;
}


Решение проблемы

Каждый раз, когда вы меняете состояние радиокнопок, все прикрепленные к каждой радиокнопке функции CheckedChanged выполняются, даже если состояние изменяется на false. Вы должны проверять состояние в функции и выполнять свой код только в том случае, если состояние «проверено».

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if((sender as radioButton).Checked)
{
textBox1.Enabled = false;
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if((sender as radioButton).Checked)
{
textBox1.Enabled = true;
}
}

Вы даже можете использовать только ОДНУ функцию, связанную со всеми радиокнопками, обрабатывающими все варианты. Например, установите значение RadioButton1.Tag в false, значение RadioButton2.Tag в true и используйте его в коде.

private void AllRadioButtons_CheckedChanged(object sender, EventArgs e)
{
if((sender as radioButton).Checked)
{
textBox1.Enabled = (bool)((sender as radioButton).Tag);
}
}

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...