Winform利用委托进行窗体间的传值
在form1.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
Winform利用委托进行窗体间的传值的更多相关文章
- Winform中利用委托实现窗体之间的传值
点击打开按扭,打开传输值窗体 public partial class Form1 : Form { public Form1() { InitializeComponent(); } public ...
- winform 利用委托实现窗体传值
父窗体:Form1 ,有个 textbox1.text ,有个button1 子窗体:Form2 ,有个 textbox1.text ,有个button1 修改Form1 的textbox1. ...
- winform利用委托delegate进行窗体间通信
前段时间学习委托,感觉很模糊的样子,也做过许多实例,但是项目中一直没有用到,今天在项目中遇到一个很简单的例子,现在拿出来,做一个简单的记录. 要求:将弹出框里勾选的内容返回到主面板上. 工具:委托. ...
- winform利用委托delegate进行窗体间通信,相同标题已经存在??
前段时间学习委托,感觉很模糊的样子,也做过许多实例,但是项目中一直没有用到,今天在项目中遇到一个很简单的例子,现在拿出来,做一个简单的记录. 要求:将弹出框里勾选的内容返回到主面板上. 工具:委托. ...
- C# Winform 窗体传值 利用委托 子窗体传值给父窗体
常用的Winform窗体传值有两种方式. 1.更改Form.designer.cs文件,将控件的设为Public,供子窗体访问. 在designer.cs文件的最后,找到你的控件声明. private ...
- .NET开发之窗体间的传值转化操作
DOTNET开发之窗体间的传值转化操作 好想把自己最近学到的知识写下来和各位朋友分享,也希望得到大神的指点.今天终于知道自己要写点什么,就是关于WPF开发时简单的界面传值与简单操作. 涉及两个界面:一 ...
- C#利用事件与委托进行窗体间传值简单小例子
本篇博客是利用C#委托与事件进行窗体间传值的简单小例子 委托与事件的详细解释大家可以参照张子阳的博客: http://www.tracefact.net/CSharp-Programming/Dele ...
- C# 利用委托事件进行窗体间的传值(新手必看)
引言: 窗体间传值是每个学习WinForm新手的常见问题,最初级的方法就是 在窗体中先获取到要接受值窗体.然后通过.得到某个空间或者属性,直接赋值,这个需要接收放的窗体属性或者空间必须是public ...
- WinForm窗体间如何传值
窗体间传递数据,无论是父窗体操作子窗体,还是子窗体操作符窗体,有以下几种方式: 公共静态变量: 使用共有属性: 使用委托与事件: 通过构造函数把主窗体传递到从窗体中: 一.通过静态变量 特点:传值是双 ...
随机推荐
- hadoop的第一个hello world程序(wordcount)
在hadoop生态中,wordcount是hadoop世界的第一个hello world程序. wordcount程序是用于对文本中出现的词计数,从而得到词频,本例中的词以空格分隔. 关于mapper ...
- [洛谷P3181][HAOI2016]找相同字符
题目大意:给你两个字符串,求从两个字符串中各选择一个字串使得这两个字串相同的方案数. 题解:建广义$SAM$,对每个点求出在第一个串中出现次数和第二个串中出现次数,乘起来就行了 卡点:无 C++ Co ...
- POJ3304:Segments——题解
http://poj.org/problem?id=3304 题目大意:给n条线段,求是否存在一条直线,将所有线段投影到上面,使得所有投影至少交于一点. ——————————————————————— ...
- BZOJ4355:Play with sequence——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4355 维护一个长度为N的序列a,现在有三种操作: 1)给出参数U,V,C,将a[U],a[U+1] ...
- 51NOD 1565:模糊搜索——题解
http://www.51nod.com/onlineJudge/questionCode.html#problemId=1565¬iceId=445588 有两个基因串S和T,他们只包 ...
- java AES 加密解密工具(Advanced Encryption Standard)发现明文相同但每次重启服务后密文就会不同于是有了改进
1.通用方法 package com.qlkj.hzd.commom.utils; import javax.crypto.*; import java.io.UnsupportedEncodingE ...
- Linux环境下用Weblogic发布项目【一】 -- 安装Weblogic
一.Weblogic安装系统环境: 1.前提条件: a.在笔记本[Windows7]上安装远程连接Linux软件:F-Secure SSH File Transfer Trial[简写为:FSSH] ...
- 第九章 C99可变长数组VLA详解
C90及C++的数组对象定义是静态联编的,在编译期就必须给定对象的完整信息.但在程序设计过程中,我们常常遇到需要根据上下文环境来定义数组的情况,在运行期才能确知数组的长度.对于这种情况,C90及C++ ...
- UIColor延伸:判断两个颜色是否相等
不管UIColor使用CIColor,CGColor还是其他方式初始化的,其CGColor属性都是可用的.CoreGraphics中提供一个函数,用于判断两个CGColor是否相等,因此我们可以通过这 ...
- mysql concat update中拼接字符串
mysql> select id,avatar from tf_user; +----+--------------+ | id | avatar | +----+--------------+ ...