从另一个类访问UI表单控件到C#中的主窗体

时间:2015-08-21 10:07:56

标签: c# .net class controls visibility

如何使用其他类的UI表单控件?我想在另一个类中使用这些控件,然后将其调用到我的主窗体中。问题是我创建的新类似乎无法访问这些控件的标签或文本框,并且我一直收到错误。

我如何解决这个问题?

错误讯息:

  

由于其保护级别

,FirstName_text无法访问      

由于其保护级别

,First_Name_label无法访问      

当前上下文中不存在颜色

public void Checker() 
{
    //First Name Validation
    if (Regex_Static_Class.FirstNameRgex.IsMatch(FirstName_text.Text) == false)      
    {
        First_Name_label.Text = "invalid first name";
        Error_Lable.ForColor = Color.Pink;     
    }
}

2 个答案:

答案 0 :(得分:0)

我认为First_Name_label是一个UI标签,它也必须可以从其他类访问。​​

也许制作一个setter方法将文本填入你的标签。

答案 1 :(得分:0)

我想说您必须将控件的修饰符属性设置为 Forms Designer 中的publicinternal才能从另一个访问它类。 Control的实例默认受保护。

这是你问题的答案。另一件事是这不是最好的主意。您不应该直接访问表单之外的表单控件。表单类应该封装其控件并公开一个接口来更改它们,例如。

同样Color并不存在,因为您在另一个班级中没有合适的using

它与条件无关(引用从原始问题中删除的条件)。