您的位置:首页 > 编程语言 > C#

两个窗口之间信息的传递 C#

2012-08-06 18:26 225 查看
大家好,当我们在做windows form 的时候,常常要从一个窗口读取一些信息到另外一个窗口当中去使用。

下面有个例子:

我要将 form1 中的 textboxInForm1 的内容读到 form2 的 textboxInForm2 中



我有两种方法介绍给大家,随便看看吧!!

第一种,

先在 from2中添加一个全局变量form1Msg,然后写一个得到from1Msg的方法,代码如下:

private string from1Msg = "";
public void GetFrom1Msg(string temp)
{
from1Msg = temp;
}


然后在 form2 中添加load函数(双击 form2 的窗口就会自动生成)

private void Form2_Load(object sender, EventArgs e)
{
this.textBoxInFrom2.Text = from1Msg;
}


然后在 form1 中的button 中添加单击事件

private void buttonInForm1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.GetFrom1Msg(this.textBoxInForm1.Text);
f2.Show();
}


那么传递信息的功能就完成了,是不是很简单呢??

第二种,

这是运用委托的方法

首先在 form2中写一个接收form1信息的函数

public void AcceptFrom1Msg(object sender)
{
TextBox temp = sender as TextBox;
this.textBoxInForm2.Text = temp.Text;
}


然后要在form1 中声明一个发送信息的委托SendMessage

然后定义一个委托的对象 sendTextboxMsg

public delegate void SendMessage(object sender);  //声明一个委托
public SendMessage sendTextBoxMsg;  //定义一个委托对象


然后,双击 form1的按钮,写好以下代码

private void buttonInForm1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
this.sendTextBoxMsg = new SendMessage(f2.AcceptFrom1Msg);  //委托对象代表的是一个方法
this.sendTextBoxMsg(this.textBoxInForm1); //方法的执行
f2.Show();
}
这下子也完成了

对于不太清楚委托的同学来说,可能第二种方法会稍难理解,这里罗嗦几句:

this.sendTextBoxMsg = new SendMessage(f2.AcceptFrom1Msg)
sendTextBoxMsg指定的就是AcceptForm1Msg这个方法,委托委托----sendTextBoxMsg就是AcceptForm1Msg的托

指定好之后就可以把sendTextBoxMsg当成AcceptForm1Msg来用了

this.sendTextBoxMsg(this.textBoxInForm1)
其实认真想一想也不是很难的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: