C# 更改其他类的控件属性

C# 更改其他类的控件属性,c#,compact-framework,label,C#,Compact Framework,Label,我正在使用CompactFramework制作一个WinCE应用程序 我有一个Form1和一个Class1。在表格1中,我有一个label1,我需要从Class1访问它 如果我尝试: Form1.label1 它不会出现,尽管我将Modifier属性设置为public 我怎样才能接触到标签 谢谢你的帮助 您可以将Form1实例化为Class1,然后使用此实例设置Form1.label1。 这将是一个优雅的解决方案。检查此代码: public partial class Form1 : Form

我正在使用CompactFramework制作一个WinCE应用程序

我有一个Form1和一个Class1。在表格1中,我有一个label1,我需要从Class1访问它

如果我尝试:

Form1.label1
它不会出现,尽管我将Modifier属性设置为public

我怎样才能接触到标签


谢谢你的帮助

您可以将Form1实例化为Class1,然后使用此实例设置Form1.label1。 这将是一个优雅的解决方案。检查此代码:

public partial class Form1 : Form
{

    public Label Label1 { get; set; }

    public void Caller()
    {
        MyClass cls = new MyClass();
        cls.Form1 = this;
        cls.DoSomeJob();
    }
}

public class MyClass
{
    public Form1 Form1 { get; set; }

    public void DoSomeJob()
    {
        Form1.Label1.Text = "Some text...";
    }
}

尝试在Form1类上创建属性或方法以返回label1对象问题在于Form1是一个类,您需要该类的实例,因为您的标签不是静态的

var myForm=new Form1(); myForm.label1.Text=“你好”

显然,您不想从类中创建新表单,因为应用程序可能创建了表单

所以你应该把表格传给全班。类是否由表单实例化?如果是这样,您可以将“this”传递到类中,以发送对实例化表单的引用


但实际上,您不想这样做,因为它很难维护。最好是让类引发某种事件,表单可以订阅以更新自身。

请发布label1属性的代码。你说得对,我创建了一个事件来更新我的标签。谢谢你的帮助!