请教c# 窗体间的值的传递的问题。

例如,一共三类form窗口:我在form1中点button1,弹出一个窗口form2,里面有个label1;点击form1的button2,然后弹出一个新的窗口form3... 例如,一共三类form窗口:我在form1中点button1,弹出一个窗口form2,里面有个label1;点击form1的button2,然后弹出一个新的窗口form3,其有一个textbox,希望form3的textbox值为form2的label1的text。如何实现?主要涉及非父子窗口之间的值传递。 谢谢!最好有代码表现,谢谢! 展开
 我来答
零临窗听雨
2011-05-19 · 超过26用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:66.9万
展开全部
这个窗体间传值:原理很简单,使用具体步骤如下:
一、定义:在工程中新建一个Helper类
Class Helper{
//定义公共的静态属性赋值为空,用于保存label1的text
public static String lblText="";
}
二、初始化:在窗体form2中初始化该字段lblText,即
Helper.lblText=值;
三、调用:在窗体form3的textBox中显示值
this.textBox.text=Helper.lblText;
************如果是要加载窗体时调用,则在from3的load事件中写,此处视乎为单击button2事件时调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cf5726c
2011-05-18 · TA获得超过1894个赞
知道小有建树答主
回答量:1064
采纳率:55%
帮助的人:612万
展开全部
非父子窗口之间不能传递值,你要通过一个中介的,比如全局变量,或者公共的父窗口。
全局变量很好说,弹出 form2 时直接将实例赋值给全局变量,然后 form3 就可以读取这个全局变量了。
或者,在父窗口里面,显示 form3 之前,先读取 form2 的值,然后对 form3 赋值,再显示。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yaobing0687
2011-05-18 · TA获得超过988个赞
知道小有建树答主
回答量:1309
采纳率:0%
帮助的人:903万
展开全部
我以前写过一个专题,关于窗口间传值的问题,你可以看看。http://hi.baidu.com/yaobing0687/blog/item/b2c8433f617bc33771cf6c38.html
这里针对你的问题我简单说下:
在Form2中定义一个Public 变量str2;在获取值之前给他赋值。
在Form3中定义一个Public 变量str3;在FormLoad里将他赋值给TextBox。

在Form1中:
Form2 f2=new Form2();
f2.Show();
string StrInForm1=f2.str2;

Form3 f3=new Form3();
f3.str3=StrInForm1;
f3.Show();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我有有好多问题
2011-05-19 · TA获得超过488个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:181万
展开全部
窗体1代码
public partial class Form1 : Form
{
private string m_Msg;
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
m_Msg = f2.Msg;
f2.Show();
}

private void button2_Click(object sender, EventArgs e)
{
Form3 f3 = new Form3(m_Msg);
f3.Show();
}
}
窗体2代码
public partial class Form2 : Form
{
private string msg;

public string Msg
{
get { return msg; }
set { msg = value; }
}
public Form2()
{
InitializeComponent();
msg = label1.Text;
}
}
窗体3代码
public partial class Form3 : Form
{
public Form3(string msg)
{
InitializeComponent();
textBox1.Text = msg;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TimeZone85
2011-05-18 · 超过13用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:39.1万
展开全部
这个可以实现,建议用C#的委托实现不同form之间的值的传递和函数的调用很好用的。但是我这机器里没环境,实现不了代码,估计下午装完vs10。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式