C#怎么实现两个Form窗体传值
C#怎么实现由一个windows窗体控制或传值到另一个windows窗体,比如用Form1上的按钮修改Form2控件中的内容,知道的说下谢谢了...
C#怎么实现由一个windows窗体控制或传值到另一个windows窗体,比如用Form1上的按钮修改Form2控件中的内容,知道的说下谢谢了
展开
5个回答
展开全部
楼上几位的方案都可以实现传值到另一个窗体中,也可以考虑观察者模式(不过这个有点麻烦)。但如果需要用Form1上的按钮修改Form2控件中的内容,一般需要使用委托。否则会提示出错。比如需要修改Form2上一个名为txtName 的TextBox上的Text,使用VS2008
在 Form2类中的代码如下:
private delegate void _SetText(string text); //定义一个委托
public void SetText(string text)
{
if (txtName.InvokeRequired) //如果是在另一个线程中调用
{
txtName.Invoke(new _SetText((word)=>{txtName.Text=word; }),new object[]{text});
}
else
{
txtName.Text=text;
}
}
在 Form1类中的修改Form2控件值的代码如下:
frm2.SetText(text); //frm2 为 Form2 实例名字,text 为一个字符串对象
在 Form2类中的代码如下:
private delegate void _SetText(string text); //定义一个委托
public void SetText(string text)
{
if (txtName.InvokeRequired) //如果是在另一个线程中调用
{
txtName.Invoke(new _SetText((word)=>{txtName.Text=word; }),new object[]{text});
}
else
{
txtName.Text=text;
}
}
在 Form1类中的修改Form2控件值的代码如下:
frm2.SetText(text); //frm2 为 Form2 实例名字,text 为一个字符串对象
展开全部
1.利用构造函数传参
比如想把一个窗体的实例传到另一个窗体中,就可以
Form2 frm1 = new Form2(this);
// 注意:这里的this代表当前窗体实例,且Form2的构造函数需要接收一个Form类型的参数
2.利用属性或有返回值的方法传参
窗体1开放一些相应的属性或方法
窗体2用窗体1的实例进行调用
3.利用额外的静态缓存
建立一个独立于两个需要传参的窗体的静态缓存。
窗体1将需要传给窗体2的东西存入缓存,窗体2去缓存读取窗体1存放的东西。
比如想把一个窗体的实例传到另一个窗体中,就可以
Form2 frm1 = new Form2(this);
// 注意:这里的this代表当前窗体实例,且Form2的构造函数需要接收一个Form类型的参数
2.利用属性或有返回值的方法传参
窗体1开放一些相应的属性或方法
窗体2用窗体1的实例进行调用
3.利用额外的静态缓存
建立一个独立于两个需要传参的窗体的静态缓存。
窗体1将需要传给窗体2的东西存入缓存,窗体2去缓存读取窗体1存放的东西。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单,利用属性传递值。
例如:
From2:
public int a=6;
public int b=2;
public int a
{
get
{return a;}
}
public int b
{
get
{return b;}
}
From1:
From2 f=new From2();
int c=f.a+f.b;
自己发挥的空间很大
在From1中处理好需要显示的数据后传到From2中显示也可以的
例如:
From2:
public int a=6;
public int b=2;
public int a
{
get
{return a;}
}
public int b
{
get
{return b;}
}
From1:
From2 f=new From2();
int c=f.a+f.b;
自己发挥的空间很大
在From1中处理好需要显示的数据后传到From2中显示也可以的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局变量,
为窗体设置一个公共成员,(给这个成员赋值,实现传递)
为窗体的构造函数,添加一个参数,窗体在new的时候,把参数值传递过去
为窗体设置一个公共成员,(给这个成员赋值,实现传递)
为窗体的构造函数,添加一个参数,窗体在new的时候,把参数值传递过去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局变量~~~我感觉简单。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询