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

  这两天看前辈的视频初识了窗体传值,于是自己跟着敲了两个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     }
时间: 2024-10-29 19:09:44

窗体传值的两种实现方法示例的相关文章

C# 禁止windows程序重复运行的两种基本方法

一般的如果运行一个软件.让他处于运行状态,然后我们再去打开这个程序时就会提示我们“程序已启动或者不能重复启动此程序”,比如QQ对战平台 ,就限制一台机子启动两个QQ对战平台,那么他在C#中是如何实现的呢? 一般有两种方法,我是用的是第一种 方法1: 在项目的第一个窗体的启动事件中 如form1_load() 中添加如下语句=================================这是什么分割线==================================== #region 判断系

C#中的两种debug方法介绍

第一种:需要把调试方法改成debug 代码用 #if DEBUG 包裹 using System; using System.Collections.Generic; using System.Text; using System.IO; namespace SplitPackage { public static class EnvConfig { static EnvConfig() { #if DEBUG ToolsPath = @"D:\workspace\shopstyle\tool&

两种排序方法(直接判断)

题目描述 考拉有n个字符串字符串,任意两个字符串长度都是不同的.考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序.例如:"car" < "carriage" < "cats" < "doggies < "koala"2.根据字符串的长度排序.例如:"car" < "cats" < "koala" <

基于Apache+Tomcat负载均衡的两种实现方法

Apache+Tomcat实现负载均衡的两种实现方法 如果我们将工作在不同平台的apache能够实现彼此间的高效通信,因此它需要一种底层机制来实现--叫做apr Apr的主要目的就是为了其能够让apache工作在不同的平台上,但在linux上安装apache的时候通常都是默认安装的 [[email protected] ~]#rpm -qi aprName                 :apr                                        Relocation

OGG的Director web hang住的两种解决方法

OGG的Director web hang住的两种解决方法: OGG的Director web hang住的解释:是指web界面能登陆进去,但是看得刷新日期是很久之前的日期,并且该日期不变化. OGG的Director web hang住 的情况之一: 参考如下的mos文章: Director web displaying "Error 500-Internal Server Error". Domain log has Cannot open paging store. (Doc I

git两种合并方法 比较merge和rebase

18:01 2015/11/18git两种合并方法 比较merge和rebase其实很简单,就是合并后每个commit提交的id记录的顺序而已注意:重要的是如果公司用了grrit,grrit不允许用merge,所以好像都是用rebase却别讲解,比如:在服务器上的develop分支有多人在开发,你们同时clone或pull下来最新代码,但是开发进度不一样,你在开发一个任务的时候其他人提交了编号为1,2的commit和push,你现在开发完了也要提交,你的提交编号是3,4(注意:编号不代表顺序现实

Eclipse web工程创建步骤及两种部署方法

1.Eclipse创建web工程步骤 (1)参考1(2)参考2 2.web工程两种部署方法 (1)部署方法同1中所述 (2)部署到Tomcat Server的webapps目录下的方法

JAVA EE 项目经常使用知识 之AJAX技术实现select下拉列表联动的两种使用方法(让你真正理解ajax)

ajax 下拉列表联动的使用方法. ajax的定义: AJAX 是一种用于创建高速动态网页的技术. 通过在后台与server进行少量数据交换,AJAX 能够使网页实现异步更新.这意味着能够在不又一次载入整个网页的情况下,对网页的某部分进行更新. ajax效果的一个样例: 区域为空的时候,维护人情况: 选了一个区域后的情况:(选 舒城县 联带出来的维护人员 小刘) 一.原生态的js实现 XMLHttpRequest 是 AJAX 的基础 XMLHttpRequest 对象 全部现代浏览器均支持 X

MVC4.0中下来列表框的,两种使用方法DropDownList

后台控制器代码 public ActionResult Drop() { var list = new List<SchoolInfo>(); list.Add(new SchoolInfo() { SchoolID = 1, SName = "北京大学" }); list.Add(new SchoolInfo() { SchoolID = 2, SName = "上海大学" }); var model = new UserViewInfo(); mod