为什么控制由于其保护级别而无法访问?

时间:2009-11-16 15:30:22

标签: c# winforms controls

我正在尝试从program.cs访问控件的text属性,并且它说由于受保护的级别而无法访问它。我该如何解决这个问题呢?

4 个答案:

答案 0 :(得分:28)

这是控件的默认属性,可以通过进入包含指定Control的Form的Design-View,然后将Control的Modifiers属性更改为Public或Internal来解决。那可以做到! :)

答案 1 :(得分:5)

控制保护级别已解决

转到设计器文件搜索控件按ID,例如txtModel将受保护的修饰符更改为公共修饰符

答案 2 :(得分:1)

背后的概念是保护级别。正如我们在面向对象范例中所研究的那样,保持你的类成员变量是私有的,并设置或从Property.Thats中获取它为什么它不是一个好的方法

答案 3 :(得分:-1)

使用x:FieldModifier="public" 例如

<TextBlock x:FieldModifier="public" x:Name="AccessibleTextBlock" />

如此处所述:Modifying XAML named field visibility

就我而言,我将UserControl放在另一个DLL中。 WPF的约定是默认情况下将所有命名字段设置为internal。使用x:FieldModifier="public"已解决了该问题。