怎么在C#中的非窗体类中,改变窗体的控件(如Label1的值)呢,谢谢
形如:publicclassForm1:Form{..............}publicclassChange(){//要在这里面调用Label1控件}...
形如:public class Form1 : Form
{
..............
}
public class Change()
{
//要在这里面调用Label1控件
} 展开
{
..............
}
public class Change()
{
//要在这里面调用Label1控件
} 展开
4个回答
展开全部
在窗体类中添加静态实例, 外部class即可以和窗体类解耦
在任意位置调用窗体类获取实例方法, 访问窗体类控件
当然需要外部访问的控件必须是public, 或者遍历窗体的Controls
class Form1 : Form
{
private static Form1 _instance;
public Form1()
{
_instance = this;
InitializeComponent();
}
public static Form1 getInstance()
{
return Form1._instance;
}
}
class Chang
{
public void Change()
{
Form1.getInstance().Label1.text = "Changed";
}
}
在任意位置调用窗体类获取实例方法, 访问窗体类控件
当然需要外部访问的控件必须是public, 或者遍历窗体的Controls
class Form1 : Form
{
private static Form1 _instance;
public Form1()
{
_instance = this;
InitializeComponent();
}
public static Form1 getInstance()
{
return Form1._instance;
}
}
class Chang
{
public void Change()
{
Form1.getInstance().Label1.text = "Changed";
}
}
展开全部
将要在其它类调用的控件Label1声明为public(可以在控件的属性面板里设置,默认为private的),
然后将 Form1的实例传给Change实例
可以创建一个构造函数
public class Form1 :Form{
public void SetLabel(){
Change change=new Chanage(this);
chanage.ChangeLabel();
}
}
public class Change(){
private Form1 m_Form1;
public Change(Form1 form){
this.m_Form1=form;
}
public void ChangeLabel(){
this.m_Form1.Label1.Text="改变了哦";
}
}
然后将 Form1的实例传给Change实例
可以创建一个构造函数
public class Form1 :Form{
public void SetLabel(){
Change change=new Chanage(this);
chanage.ChangeLabel();
}
}
public class Change(){
private Form1 m_Form1;
public Change(Form1 form){
this.m_Form1=form;
}
public void ChangeLabel(){
this.m_Form1.Label1.Text="改变了哦";
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Change(Label myLable)
{
//要在这里面调用Label1控件
myLabel.Text="NewText";
}
调用的时候:
Change(this.Lable1);
{
//要在这里面调用Label1控件
myLabel.Text="NewText";
}
调用的时候:
Change(this.Lable1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先窗体和类要在同一个命名空间中
class Change() //非窗体类
{
private...//类中的私有变量
pravite Label _la; //用来改变窗体内label1的私有变量
public Change(..... ,Label lbl, .... )//构造函数
{
......;//其它
_la=lbl; //将传递进来的Label1赋给_la
}
_la.text="改变";//可以修改了
}
//窗体内
public partial class Frm : Form
{private Change ch;
ch=new Change(... ,label1,) //窗体调用Change类时把Label1传递过去。
}
class Change() //非窗体类
{
private...//类中的私有变量
pravite Label _la; //用来改变窗体内label1的私有变量
public Change(..... ,Label lbl, .... )//构造函数
{
......;//其它
_la=lbl; //将传递进来的Label1赋给_la
}
_la.text="改变";//可以修改了
}
//窗体内
public partial class Frm : Form
{private Change ch;
ch=new Change(... ,label1,) //窗体调用Change类时把Label1传递过去。
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询