委托和事件(二)
来源:互联网 发布:天刀网络延迟 编辑:程序博客网 时间:2024/05/22 06:12
来来来~
又增加了一个事件,这个事件其实是给form1调用的~~~目的就是为了增加List<User>数据,
这里,我们可以看见,
load():初始化加载数据,没什么好说的
Button.Click方法:
这里我做了下面几件事,
1 实例化 form2窗体,
2 show出form2窗体
3 给form2窗体里的 事件MyDelegate绑定了Add方法。哈哈
而Add方法的参数(User)来自于我们form2窗体里的User u = new User() { Name="ha",Age=25};这个值
兄弟们,这次我讲一下委托和事件的用法。
直接用例子将吧!
相信很多同学,做winform时,会遇见给form1的griview,添加数据。
而添加数据的方法,基本是通过 子form2来添加
这是 form1
里面有一个 gridview
还有一个 button
这里是 form2,
为了简单,我就默认按一下 button,为form1增加一条数据。
然后,我们创建一个 实体类,用来作为 gridview的数据源
接下来,我们先去form2做些事情!
public partial class Form2 : Form { //声明一个委托 public delegate void MyDelegate(User u); //声明事件 public event MyDelegate myTestDelegate; public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { } //按钮点击事件,添加 User对象并调用委托事件 private void button1_Click(object sender, EventArgs e) { User u = new User() { Name="ha",Age=25}; myTestDelegate(u); } }我们可以看见,我在form2增加了一个委托。
又增加了一个事件,这个事件其实是给form1调用的~~~目的就是为了增加List<User>数据,
其实没有什么花头啊~
嘿嘿,最后给form1搞点事情做做。
private void Form1_Load(object sender, EventArgs e) { this.dataGridView1.DataSource = uList; } private void button1_Click(object sender, EventArgs e) { //show出 f2窗体 Form2 f2 = new Form2(); f2.Show(); //调用 f2的委托事件 f2.myTestDelegate += new Form2.MyDelegate(Add); } //数据源,可以是datatable,也可以是 List泛型集合。这里我采用 list static List<User> uList = new List<User>(); //委托的方法,添加数据 public void Add(User u) { uList.Add(u);
<span style="white-space:pre"></span> //重新绑定datagridview BindingSource bs = new BindingSource(); bs.DataSource = uList; this.dataGridView1.DataSource = bs; }
这里,我们可以看见,
load():初始化加载数据,没什么好说的
Button.Click方法:
这里我做了下面几件事,
1 实例化 form2窗体,
2 show出form2窗体
3 给form2窗体里的 事件MyDelegate绑定了Add方法。哈哈
而Add方法的参数(User)来自于我们form2窗体里的User u = new User() { Name="ha",Age=25};这个值
到这里,大家就可以运行一下程序了
效果如下:
总结:
1 我们先给form2窗体创建了一个委托和事件
为什么?因为这是给form1调用的事件。哈哈
2 我们在 form2的button.click事件里,
创建一个新的user数据,其实就是新增数据的功能。
并且调用了事件myTestDelegate(u)
3 我们来到了form1,声明了一个方法叫做 Add(这个才是给form2委托事件传递的方法!Add)
最后我们在form1的button事件里,show出form2,并且给委托事件赋值了~
f2.myTestDelegate += new Form2.MyDelegate(Add);
好了,委托和事件,今天就讲到这里。
当然上面的功能可以通过很多方法实现,什么构造函数,全局静态变量等等。
这里只是用委托和事件去解决一下而已。
0 0
- 委托和事件(二)--委托详解
- 委托和事件(二)
- 委托和事件入门(二)窗体间传值
- C#修饰符之二(事件和委托)
- Unity3D C# 委托和事件(之二)
- Unity3D 中使用C# 委托和事件(之二)
- Unity3D C# 委托和事件(之二)
- C#中的委托和事件(二)
- C#中的委托和事件(二)
- C#中的委托和事件(二)
- 委托和事件(转)
- 委托和事件(C#)
- 委托和事件(三)
- 15 C# 第十三章 事件和委托(二) 使用事件
- 【菜鸟学c#】委托和事件(二、初探事件)
- C# 如何理解委托事件(二)
- C#中的委托与事件(二)
- C#中的委托与事件(二)
- virtualBox设置虚拟机分辨率大小
- ANDROID6.0指纹识别框架架构
- JQ---选项卡
- 学习日记--测试startActivityForResult
- 腾讯bugly crash追踪平台的使用(一)(挺好用的喔!)
- 委托和事件(二)
- SSH:Hibernate框架(Hibernate三种检索方式详解)
- OpenJudge_P0090 滑雪
- 线段树模板
- 自定义ListView的几种方法
- Saliency程序代码分享
- JavaScript DOM学习总结(二)
- 工业4.0,给我们的未来敲响了一个警钟
- XMLHttpRequest cannot load file:///D