从其他类更改控件属性

时间:2012-08-21 19:22:32

标签: c# compact-framework label

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

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

如果我尝试:

Form1.label1

尽管我将Modifier属性设置为public,但它不会出现。

我怎样才能访问该标签?

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

问题是Form1是一个类,您需要该类的实例,因为您的标签不是静态的。

var myForm = new Form1(); myForm.label1.Text ="你好&#34 ;;

显然,您不想在班级中创建新表单,因为您的应用程序可能会创建表单。

所以你应该将表格传递给班级。该类是否通过表单实例化?如果是这样,你可以通过"这个"进入类中以发送对实例化表单的引用。

但实际上,你不想这样做,因为它难以维持。更好的方法是让课程提出某种形式的事件,表格可以订阅以更新自己。

答案 1 :(得分:0)

您可以将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...";
    }
}

答案 2 :(得分:0)

尝试在Form1类上创建属性或方法以返回label1对象