Как сделать элементы управления TextBox доступными только для чтения, когда они находятся внутри отключенного GroupBox? - PullRequest
4 голосов
/ 28 марта 2011

У меня есть элемент управления GroupBox в моем приложении Windows Forms, внутри которого я поместил некоторые элементы управления TextBox. Как отключить элемент управления GroupBox, когда отдельные элементы управления TextBox доступны только для чтения?

Всякий раз, когда я отключаю GroupBox, все TextBox элементы управления внутри него также отключаются. Я не могу понять, как сделать их доступными только для чтения.

Ответы [ 4 ]

11 голосов
/ 28 марта 2011

Когда вы отключаете контейнерный элемент управления (например, GroupBox), все его дочерние элементы также становятся отключенными. Вот как это работает в Windows; изменить это поведение невозможно.

Вместо этого необходимо установить для свойства ReadOnly каждого отдельного элемента управления TextBox значение true. Если вы отключите весь GroupBox, все элементы управления TextBox, которые он содержит, также будут отключены, что переопределяет состояние свойства ReadOnly и не позволяет пользователю копировать его содержимое.

Как только вы исправите раздел кода, который отключает GroupBox, вы можете использовать простой цикл foreach, чтобы выполнить грязную работу по установке свойства для каждого элемента управления TextBox:

foreach (TextBox txt in myGroupBox.Controls)
{
    txt.ReadOnly = true;
}
3 голосов
/ 28 марта 2011

Это сделает все текстовые поля в группе только для чтения.

foreach(TextBox t in groupBox1.Controls)
            {
                t.ReadOnly = true;
            }
2 голосов
/ 28 марта 2011

На самом деле, если для свойства Включено для группового блока установлено значение false. Все содержимое в нем (текстовое поле и т. Д.) Также будет отключено. Но вы все равно можете сделать это, используя:

foreach (Control ctrl in groupBox1.Controls)
{
    if (ctrl is TextBox)
    {
        ((TextBox)ctrl).ReadOnly = true;
    }
}
0 голосов
/ 28 марта 2011

Я думаю, что вы имеете в виду, что вы хотите отключить групповое поле и в то же время - не хотите, чтобы текстовые поля отображались серым цветом ... Если это то, чего вы хотите достичь, вам лучше поставить эти текстовые поля в Panel, а затем установите их ReadOnly, как для любого элемента управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...