Я установил все мои TextBoxs.readOnly = true;
в форме по умолчанию. Но когда нажата кнопка Edit Button
. Я хочу это сделать все TextBoxs.readOnly = false;
Установить несколько текстовых полей, редактируемых после нажатия кнопки на WinForm
Я пробовал;
private void btnEdit_Click(object sender, EventArgs e)
{
foreach (var textBox in this.Controls.OfType<TextBox>())
textBox.ReadOnly = false;
}
Каждый TextBox
имеет уникальное имя. Самый простой способ сделать это будет следующим, ниже. Но я не хочу так поступать.
txtName.ReadOnly = false;
txtAddress.ReadOnly = false;
...
При таком подходе можно установить только' TextBoxes', которые размещаются непосредственно в форме не те, которые находятся внутри другой контейнер, например 'GroupBox' или' Panel'. Для этой цели вам нужен рекурсивный метод: http: //stackoverflow.com/a/34676012/2946329 –
все текстовые поля внутри 'GroupBox' – AndroidAL
@ user2946329 верны, но я бы предпочел либо [этот ] (http://stackoverflow.com/a/3426721/1997232) рекурсивный метод или просто удерживайте ссылки управления в выделенном массиве. Если элементы управления находятся внутри одного и того же контейнера, замените «this» экземпляром контейнера (в вашем случае «GroupBox»). – Sinatr