我正在使用CompactFramework制作WinCE应用程序。
我有一个Form1和一个Class1。在Form1中,我有一个label1,我需要从Class1访问。
如果我尝试:
Form1.label1
尽管我将Modifier属性设置为public,但它不会出现。
我怎样才能访问该标签?
感谢您的帮助!
答案 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对象