码迷,mamicode.com
首页 > Windows程序 > 详细

窗体传值的两种实现方法示例

时间:2015-08-04 20:43:05      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

  这两天看前辈的视频初识了窗体传值,于是自己跟着敲了两个Demo,方便以后复习、分享交流。

 窗体传值的两种方法:1.通过属性构造方法传值  2.利用委托实现传值。  


 

示例1:点击Form1中的按钮打开From2,点击Form2中的按钮改变窗体Form1的背景颜色。

Form1的代码:

 

 1     public partial class Form1 : Form
 2     {
 3         public Form1()
 4         {
 5             InitializeComponent();
 6         }
 7       
 8         private void button1_Click(object sender, EventArgs e)
 9         {
10             //通过Form2的构造函数将Form1对象传递到Form2中
11             Form2 form2 = new Form2(this);
12             form2.Show();
13         }
14     }

 

 Form2的代码:

 1     public partial class Form2 : Form
 2     {
 3         //首先在Form2中定义Form1类型字段用来存储Form1对象
 4         Form1 form1=null;
 5         Random r = new Random();
 6         public Form2()
 7         {
 8             InitializeComponent();
 9         }
10         public Form2(Form1 form):this()
11         {
12             //通过构造方法将Form1对象给Form2字段赋值
13             form1 = form;
14         }
15         private void button1_Click(object sender, EventArgs e)
16         {
17             //随机改变Form1的背景颜色
18             form1.BackColor = Color.FromArgb(r.Next(256),r.Next(256),r.Next(256));
19         }
20     }

 


示例2:Form1中有一个button、label,From2中有button、textBox。点击Form1中的按钮打开From2并在textBox中输入字符,

再点击Form2中的按钮将其输入的字符显示在Form1的label上。

Form1的代码:

 1     public partial class Form1 : Form
 2     {
 3         public Form1()
 4         {
 5             InitializeComponent();
 6         }
 7 
 8         private void button1_Click(object sender, EventArgs e)
 9         {
10             Form2 form2 = new Form2(ShowMsg);
11             form2.Show();
12         }
13 
14         //将这个方法通过构造函数传递给Form2
15         public void ShowMsg(string msg)
16         {
17             label1.Text = msg;
18         }
19     }

 

Form2的代码:

 1     //在这里声明的委托需要与要传递的方法有相同的签名
 2     public delegate void DelTest(string msg);
 3 
 4     public partial class Form2 : Form
 5     {
 6         //声明委托字段用来存储Form1传来方法
 7         public DelTest _del;
 8         public Form2(DelTest del)
 9         {
10             _del = del;
11         }
12 
13         private void button1_Click(object sender, EventArgs e)
14         {
15             //执行委托回传数据
16             _del(textBox1.Text);
17         }
18     }

 

窗体传值的两种实现方法示例

标签:

原文地址:http://www.cnblogs.com/gao-yang/p/4702914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!