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

大家好,当我们在做windows form 的时候,常常要从一个窗口读取一些信息到另外一个窗口当中去使用。

下面有个例子:

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



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


第一种,

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

[csharp] view plain copy
  1. private string from1Msg = "";  
  2. public void GetFrom1Msg(string temp)  
  3. {  
  4.     from1Msg = temp;  
  5. }  

然后在 form2 中添加load函数(双击  form2  的窗口就会自动生成)
[csharp] view plain copy
  1. private void Form2_Load(object sender, EventArgs e)  
  2.        {  
  3.            this.textBoxInFrom2.Text = from1Msg;  
  4.        }  

然后在 form1 中的button 中添加单击事件
[csharp] view plain copy
  1. private void buttonInForm1_Click(object sender, EventArgs e)  
  2.       {  
  3.           Form2 f2 = new Form2();  
  4.           f2.GetFrom1Msg(this.textBoxInForm1.Text);  
  5.           f2.Show();  
  6.       }  

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




第二种,

这是运用委托的方法

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

[csharp] view plain copy
  1. public void AcceptFrom1Msg(object sender)  
  2. {  
  3.     TextBox temp = sender as TextBox;  
  4.     this.textBoxInForm2.Text = temp.Text;  
  5. }  


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

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

[csharp] view plain copy
  1. public delegate void SendMessage(object sender);  //声明一个委托  
  2. public SendMessage sendTextBoxMsg;  //定义一个委托对象  

然后,双击  form1的按钮,写好以下代码
[csharp] view plain copy
  1. private void buttonInForm1_Click(object sender, EventArgs e)  
  2.      {  
  3.          Form2 f2 = new Form2();  
  4.          this.sendTextBoxMsg = new SendMessage(f2.AcceptFrom1Msg);  //委托对象代表的是一个方法  
  5.          this.sendTextBoxMsg(this.textBoxInForm1); //方法的执行  
  6.          f2.Show();  
  7.      }  
这下子也完成了

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

[csharp] view plain copy
  1. this.sendTextBoxMsg = new SendMessage(f2.AcceptFrom1Msg)  
sendTextBoxMsg指定的就是AcceptForm1Msg这个方法,委托委托----sendTextBoxMsg就是AcceptForm1Msg的托

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

[csharp] view plain copy
  1. this.sendTextBoxMsg(this.textBoxInForm1)  
其实认真想一想也不是很难的
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值