怎么在C#中的非窗体类中,改变窗体的控件(如Label1的值)呢,谢谢

形如:publicclassForm1:Form{..............}publicclassChange(){//要在这里面调用Label1控件}... 形如:public class Form1 : Form
{
..............
}
public class Change()
{
//要在这里面调用Label1控件
}
展开
 我来答
dualmind
2011-07-12 · TA获得超过270个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:172万
展开全部
在窗体类中添加静态实例, 外部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";
}
}
bottsoft
2011-07-11
知道答主
回答量:45
采纳率:0%
帮助的人:26.8万
展开全部
将要在其它类调用的控件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="改变了哦";
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
apu510064
2011-07-11 · TA获得超过964个赞
知道小有建树答主
回答量:1634
采纳率:55%
帮助的人:912万
展开全部
public class Change(Label myLable)
{
//要在这里面调用Label1控件
myLabel.Text="NewText";
}
调用的时候:
Change(this.Lable1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ghaopeng
2012-04-03
知道答主
回答量:1
采纳率:0%
帮助的人:1622
展开全部
首先窗体和类要在同一个命名空间中
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传递过去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式