Как применить одно свойство сразу к нескольким элементам?
К примеру, есть несколько текст боксов и чек бокс. Если свойство Checked у чек бокса true, то Visible у текст боксов также true и наоборот. Можно было бы прописать свойство каждого текст бокса отдельно, но чет некрасиво получается. Пример некрасивого кода:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
textBox1.Visible = true;
textBox2.Visible = true;
textBox3.Visible = true;
}
else
{
textBox1.Visible = false;
textBox2.Visible = false;
textBox3.Visible = false;
}
}
Ответы (1 шт):
Автор решения: Alexander Petrov
→ Ссылка
Ох уж эти думы о красивости...
Делов на несколько секунд.
Способ с обработчиком события:
private void CheckBox_CheckedChanged(object sender, EventArgs e)
{
textBox1.Visible = checkBox.Checked;
textBox2.Visible = checkBox.Checked;
}
Способ с привязкой данных:
textBox1.DataBindings.Add("Visible", checkBox, "Checked");
textBox2.DataBindings.Add(nameof(TextBox.Visible), checkBox, nameof(CheckBox.Checked));
Показал, что можно использовать как введённые вручную литералы, так и nameof.