#c#
#c#
Вопрос:
Привет, чего я хотел бы достичь, так это когда я изменяю свойство visible элемента управления на false, я также хочу изменить свойство enabled на false. и наоборот.
сценарий (предполагая, что у нас есть текстовое поле и флажок: если флажок установлен, текстовое поле отображается и включено, иначе текстовое поле не отображается и не включено
Я могу сделать это с помощью событий, но это слишком много кода для повторения при наличии нескольких элементов управления..
Комментарии:
1. Перебирайте элементы управления при запуске и добавляйте к каждому элементу управления тот же перехват VisibilityChanged, который устанавливает значение enabled равным false или true.
Ответ №1:
Вы могли бы обработать VisibleChanged
событие элемента управления:
void Controls_VisibleChanged(object sender, EventArgs e)
{
Control c = (Control) sender;
c.Enabled = c.Visible;
}
Вы можете использовать один и тот же обработчик событий для всех элементов управления. Например, в конструкторе:
foreach (Control c in this.Controls)
c.VisibleChanged = new EventHandler(this.Controls_VisibleChanged);
Ответ №2:
Я не смог понять ваш вопрос, но я напишу что-нибудь, что может помочь.
Дважды щелкните по вашему флажку, отредактируйте CheckedChanged
событие и напишите код:
if (!<CheckBoxName>.Checked)
{
<TextBoxName>.Enabled = false;
<TextBoxName>.Hide();
}
else
{
<TextBoxName>.Enabled = true;
<TextBoxName>.Show();
}
Примечание:
<CheckBoxName>
= Имя вашего флажка
<TextBoxName>
= Имя вашего текстового поля
Измените флажок.Проверьте свойства и измените его на true
, чтобы код работал плавно.
Я надеюсь, что это вам поможет…