Winform窗体传值的几种方式(属性赋值,委托,事件)
来源:互联网 发布:手机淘宝抢购软件 编辑:程序博客网 时间:2024/04/30 21:19
百度云盘代码下载:http://pan.baidu.com/share/link?shareid=388120&uk=3627406265
窗体设计:
父窗体:
子窗体:
方法一:
1、子窗体设置一个父窗体MainFrm属性: public MainFrm MainFrm { get; set; }
2、在父窗体启动子窗体的时候:
ChildFrm frm =new ChildFrm();
frm.MainFrm = this;//将当前主窗体的实例传递给子窗体
frm.Show();
3、在子窗体同步按钮中:
//子窗体跟父窗体完全耦合在一块了。
MainFrm.txtName.Text = this.textBox1.Text;
4、这样即可实现,在子窗体点击同步,子窗体文本框的值会同步到父窗体,但这种方式,子窗体跟父窗体完全耦合在一块了。
方法二、用委托来实现。
委托可以把一个方法作为参数带入另一个方法,在窗体传值中,子窗体需要执行一个方法来改变父窗体的值,
而这个方法,则可以用委托从父窗体传递过来。在父窗体中,声明修改文本框的方法AfterChildChange,在new一个子窗体的时候,将这个方法传递给子窗体。那么当子窗体点击同步按钮时,会执行父窗体的AfterChildChange方法,已达到修改文本框值的目的。
1、在子窗体中设置一个委托类型的属性:
public Action<string> AfterChangeTextDel { get; set; }
2、在子窗体同步按钮中:
if (AfterChangeTextDel != null)
{
AfterChangeTextDel(this.textBox1.Text);//执行委托
}
3、在父窗体中添加方法:
public void AfterChildChange(string text)
{
txtName.Text = text;
}
4、在父窗体启动子窗体按钮:
ChildFrm frm =new ChildFrm();
frm.AfterChangeTextDel = new Action<string>(this.AfterChildChange);
frm.Show();
5、这样也能实现窗体传值,子窗体的委托可以在父窗体 其他地方可以进行直接执行。:解决此问题。微软引入了事件。
三、事件
事件是委托类型的对象。它内部是用委托来实现的,对于事件来说,外部只能注册自己+=,注销自己-=,外界不可以注销其他的注册者,也不能主动触发事件。而委托则无法实现这些控制,因此诞生了事件这话总语法。
事件内部就是一个private的委托和add、remove两个方法
1、在子窗体中声明一个事件:public event Action<string> AfterChangeEvent;
2、在同步按钮中:
if (AfterChangeEvent != null)
{
//事件本身就是委托的一个实例。
AfterChangeEvent(this.textBox1.Text);
}
3、在父窗体中添加方法:
public void AfterChildChange(string text)
{
txtName.Text = text;
}
4、在父窗体启动子窗体按钮:
ChildFrm frm =new ChildFrm();
frm.AfterChangeEvent += AfterChildChange;
frm.Show();
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- Winform窗体传值的几种方式(属性赋值,委托,事件)
- 窗体委托、事件两种方式传值、lamda表达式
- C#的委托事件在winform窗体中实现传值备忘
- 无边框Winform窗体移动的几种方式
- WinForm主窗体的属性及事件
- 窗体之间传值(委托,事件,Owner,封装属性)
- C# Winform 窗体传值的几种方法
- WinForm窗体间如何传值的几种方法
- Winform中利用委托实现窗体之间的传值
- Winform中利用委托实现窗体之间的传值
- 利用委托事件实现Winform窗体之间的同步刷新
- 委托事件窗体传值
- Winform窗体间传值(委托)
- 简单窗体使用委托、事件传值
- 事件_窗体传值(使用系统自带的委托)
- winform使用委托和事件完成两个窗体之间的通信实例
- WinForm窗体的StartPosition属性
- [转]winForm:利用窗体的自定义属性实现窗体传值
- 指针和引用可以用来使函数返回多个值
- Camshift
- Android 天气预报2
- 腾讯马拉松编程大赛第0,1,5场解题报告
- 什么是SDK
- Winform窗体传值的几种方式(属性赋值,委托,事件)
- 顺移加密
- JSP——基本脚本
- 在MINI2440开发板上添加qtopia应用程序
- 网络拓扑图
- 字符串匹配算法
- Java访问权限
- 使用miniSipServer构建自己的视频电话平台
- 用as3 serverSocket 做服务端,实现web客户端