【问题标题】:Access UI form controls from another class into your main form in C#在 C# 中将 UI 表单控件从另一个类访问到您的主表单
【发布时间】:2015-11-15 05:53:05
【问题描述】:

如何使用其他类的 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;     
    }
}

【问题讨论】:

    标签: c# .net class controls visibility


    【解决方案1】:

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

    也许制作一个 setter 方法来将文本填充到您的标签中。

    【讨论】:

      【解决方案2】:

      我想说您必须在 Forms Designer 中将控件的 Modifiers 属性设置为 publicinternal 才能从另一个类访问它。默认情况下,控件的实例是受保护的。

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

      另外,Color 不存在很可能是因为您在另一个班级中没有正确的using

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

      【讨论】:

        猜你喜欢
        • 2014-05-29
        • 1970-01-01
        • 2016-05-06
        • 2019-09-23
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多