OriginalGriff
Код тот же, но вам нужно проверить "это текстовое поле?" внутри вашего цикла:
foreach(Control c in con.Controls)
{
if (c is TextBox)
{
c.Enabled = false;
}
}
Цитата:
Может ли это работать, когда мое текстовое поле находится в панели
Зависит от того, что вы передаете своему методу: если это форма, то она не будет - коллекция Form.Controls содержит панель и панель.Коллекция элементов управления содержит текстовое поле, поэтому оно не будет найдено.
Если это панель, которую вы проходите, то она будет.
Если вы хотите отключить текстовое поле "где-то в элементе управления на форме", то вам нужно вызвать свой метод рекурсивно:
public void DisableControl(Control con)
{
foreach(Control c in con.Controls)
{
DisableControl(c);
if (c is TextBox)
{
c.Enabled = false;
}
}
}
Это будет работать, если вы передадите ему форму и отключите все текстовые поля в форме.