2017-09-11 70 views
-3

我试图在我的c#程序的另一个类中创建一个函数,但是出现此错误。该功能需要LabelText'Form1.Label1'由于其保护级别而无法访问

代码我的课:

我的主程序
form1 frm = new form1(); 
public void Menu() 
{ 
    frm.label1.Text = "test"; 
} 

代码:

public form1() 
{ 
    Commands obj = new Commands(); 
    InitializeComponent(); 
} 

错误:

CS0122 C# is inaccessible due to its protection level.

+5

如果错误消息真的说“C#无法访问”,我会非常惊讶。我怀疑它说“label1不可访问”,大概是因为'label1'字段是私人的?这种情况很难说清楚。如果您要显示错误消息指向哪一行,这也会有所帮助。 –

+1

您有没有机会尝试引用私密或受保护而非公开的内容? – Danieboy

+0

使label1在设计者处公开。 – Berkay

回答

2

如果你去你的Form1.Designer.cs你会看到你的控件在默认情况下声明为private字段:

private System.Windows.Forms.Label label1; 

他们应该是properties,如果你想在窗体外访问它们。 属性是提供灵活机制来读取,写入或计算专用字段的值的成员。

public System.Windows.Forms.Label Label1 { get; set; } 
+0

谢谢,这是问题所在...我是一个新手,但即时学习再次感谢你! – Pretpacked

+0

您也可以拥有一个属性来获取/设置标签的文本,而不是访问整个标签本身。 –

相关问题