2009-11-16 2 views
13

Я пытаюсь получить доступ к текстовому свойству элемента управления из program.cs, и он говорит, что он недоступен из-за защищенного уровня. Как я могу это исправить?Почему контроль недоступен из-за его уровня защиты?

+1

Что вы пытаетесь достичь? –

+2

FWIW, вопрос вроде этого означает, что вы идете по очень узкой связи (доступ к myForm.myControl.Text за пределами кода myForm - плохая идея). –

+0

это плохая идея только потому, что она может быть небезопасной? или есть другие причины? –

ответ

24

Это свойство по умолчанию для элементов управления, и его можно решить, перейдя в Design-View для формы, которая содержит указанный элемент управления, а затем измените свойство Модификаторы элемента управления на общедоступное или внутреннее. Это должно сделать это! :)

+3

Примечание: просто чтобы подчеркнуть, поскольку это, кажется, было очень неясным для искателя, это сам экземпляр * элемента управления *, который защищен (т. е. переменная, удерживающая элемент управления), а не * .Text' свойство *, которое является общедоступным. – Abel

+1

спасибо Абель. –

4

Степень защиты управления Решенный

Перейти к контролю поиска дизайнер файла По ID txtModel изменения например защищаемого модификатор общественности модификатор

+2

Это не очень хорошая идея. Лучше получить доступ к значению элемента управления через класс класса, где используется управление. – eridanix

+1

Почему это не очень хорошо? Объяснить кратко – Asad

+0

не хватало файлов дизайна ... спасибо за указатель –

0

Концепция является уровень защиты. Как мы изучали в объектно-ориентированной парадигме, сохраняйте переменные вашего класса частными и задайте или получите их из свойства. Почему это не очень хороший подход?

Смежные вопросы