Winform利用委托进行窗体间的传值
2015-03-24 11:19
375 查看
在form1.cs中
1.委托的定义
2.事件的定义
3.事件的引发
在form2.cs中
1.登记事件
2.事件处理
整个demo实现代码为
form1.cs
form2.cs
实现效果
form1.cs form2.cs
1.委托的定义
//定义一个委托 public delegate void AddUsrEventHandler(object sender, AddUsrEventHandlerArgs e);
2.事件的定义
//委托实例 public event AddUsrEventHandler UserAdded;
3.事件的引发
//按下btn之后触发事件 this.UserAdded(this,new AddUsrEventHandlerArgs(user));
在form2.cs中
1.登记事件
//登记一个事件 frm.UserAdded += new AddUsr.AddUsrEventHandler(frm_UserAdded);//按两下TAB键会自动生成
2.事件处理
//事件处理函数(回调函数) void frm_UserAdded(object sender, AddUsr.AddUsrEventHandlerArgs e) { //throw new NotImplementedException(); User user = e.Current; ListViewItem item = new ListViewItem(new string []{user.UserName,user.PassWorld,user.Memo}); listViewUsr.Items.Add(item); }
整个demo实现代码为
form1.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace FrmLogin { public partial class AddUsr : Form { //定义一个委托 public delegate void AddUsrEventHandler(object sender, AddUsrEventHandlerArgs e); //委托实例 public event AddUsrEventHandler UserAdded; public AddUsr() { InitializeComponent(); } private void buttonOK_Click(object sender, EventArgs e) { if (UserAdded != null) { User user =new User(); user.UserName = this.textBoxUsrName.Text.Trim(); user.PassWorld = this.textBoxPaswd.Text; user.Memo = this.textBoxMemo.Text.Trim(); //按下btn之后触发事件 this.UserAdded(this,new AddUsrEventHandlerArgs(user)); } } //传递参数的类型 public class AddUsrEventHandlerArgs : EventArgs { public User Current {set; get;} public AddUsrEventHandlerArgs(User user) { this.Current = user; } } } }
form2.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace FrmLogin { public partial class FrmUsrList : Form { public FrmUsrList() { InitializeComponent(); } private void btnAdd_Click(object sender, EventArgs e) { AddUsr frm = new AddUsr(); //1.登记一个事件 frm.UserAdded += new AddUsr.AddUsrEventHandler(frm_UserAdded);//按两下TAB键会自动生成 frm.ShowDialog(); } //2.事件处理函数(回调函数) void frm_UserAdded(object sender, AddUsr.AddUsrEventHandlerArgs e) { //throw new NotImplementedException(); User user = e.Current; ListViewItem item = new ListViewItem(new string []{user.UserName,user.PassWorld,user.Memo}); listViewUsr.Items.Add(item); } } }
实现效果
form1.cs form2.cs
相关文章推荐
- C# Winform 窗体传值 利用委托 子窗体传值给父窗体
- C#利用事件与委托进行窗体间传值简单小例子
- 利用委托实现winform窗体间通信
- 利用委托事件实现Winform窗体之间的同步刷新
- Winform利用委托实现子窗体传值给父窗体
- Winform中利用委托实现窗体之间的传值
- Winform中利用委托实现窗体之间的传值
- winform 利用委托实现窗体传值
- winform程序三个窗体间同步数据(六):利用多播委托同步数据
- 利用委托进行窗体传值
- winform利用委托实现窗体间传值
- C# Winform 窗体传值 利用委托 子窗体传值给父窗体
- Winform中利用委托实现窗体之间的传值
- Winform中利用委托实现窗体之间的传值
- c#利用委托进行异步跨线程加载到窗体数据
- winform 利用属性在父、子窗体间传值
- C#利用委托实现窗体间的值传递
- 利用反射,实现动态调用winform窗体
- C#的委托事件在winform窗体中实现传值备忘
- 利用事件进行窗体之间传值