C# 更改其他类的控件属性
我正在使用CompactFramework制作一个WinCE应用程序 我有一个Form1和一个Class1。在表格1中,我有一个label1,我需要从Class1访问它 如果我尝试: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
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属性的代码。你说得对,我创建了一个事件来更新我的标签。谢谢你的帮助!