C#委托的一些应用,个人肤浅的一些操作
2011-11-30 14:43
459 查看
分别建立两个窗口(Form1,Form2),各在窗口拉两个textbox,在Form2的textbox里输入文字,Form1的textbox文本框里显示一模一样的内容
Form1的代码如下:
Form2的代码如下:
另一种方法,也用到委托,是写一个类,代码如下
类:
在主窗体中,写上:
在要打开的窗体上,传值
下面这句代码是要传的参数,可以放在任何地方
在要显示的窗体上,先构造一个函数,获取传过来的值,写上代码如下:
把数据显示在相应的文本框上,代码如下:
在窗体关闭时,清空参数:
Form1的代码如下:
public partial class Form1 : Form { public Form1() { InitializeComponent(); } Form2 f2 = new Form2(); private void Form1_Load(object sender, EventArgs e) { f2.SendTextFun += new Form2.SendText(Send); f2.Show(); } public void Send(string str) { this.textBox1.Text = str; } }
Form2的代码如下:
public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { } public delegate void SendText(string str); public SendText SendTextFun; private void textBox1_TextChanged(object sender, EventArgs e) { SendTextFun(this.textBox1.Text); } }
另一种方法,也用到委托,是写一个类,代码如下
类:
/// <summary> /// TransferData 的摘要说明。 /// </summary> /// public delegate void SendDataHandler(object o); public class TransferData { public event SendDataHandler DataSended; public void SendData(object o) { o.ToString(); if (DataSended != null) DataSended(o); } }
在主窗体中,写上:
RMFCCls.ReaderCard.TransferData TransferCard = null;//实例化这个类 private void frmMain_Load(object sender, EventArgs e) { TransferCard = new RMFCCls.ReaderCard.TransferData(); }
在要打开的窗体上,传值
Product pd = new Product(TransferCard); pd.ShowDialog();
下面这句代码是要传的参数,可以放在任何地方
TransferCard.SendData(CardNo.ToString());
在要显示的窗体上,先构造一个函数,获取传过来的值,写上代码如下:
RMFCCls.ReaderCard.TransferData TransferCard = null; public Product(RMFCCls.ReaderCard.TransferData transferCard) : this() { TransferCard = transferCard; }
把数据显示在相应的文本框上,代码如下:
private void Product_Load(object sender, EventArgs e) { TransferCard.DataSended += new Reasee.RMFCCls.ReaderCard.SendDataHandler(CardNoDataSended); } private void CardNoDataSended(object o) { txtCardNo.Text = o.ToString(); }
在窗体关闭时,清空参数:
//关闭窗体 private void Product_FormClosing(object sender, FormClosingEventArgs e) { TransferCard.DataSended -= new Reasee.RMFCCls.ReaderCard.SendDataHandler(CardNoDataSended); }
相关文章推荐
- C#中检测某个类(方法、程序集等各种部分)是否应用了指定的特性以及对特性的一些简单操作
- 关于系统性能优化的一些操作和泛型的应用(第二天)
- C#操作Access的一些小结
- C#中一些字符串操作的常用用法
- C#中一些字符串操作的常用用法
- 关于C#跨线程操作和Pinvoke的一些总结
- C#中一些字符串操作的常用用法
- C#中一些字符串操作的常用用法
- C# 委托(Delegate) 事件(Event)应用详解
- C#中对XML文件的一些基本操作
- C#开发微信门户及应用(6)--微信门户菜单的管理操作
- C#操作Word需要注意的一些问题
- C# 委托的应用1:将方法作为参数传递给另一个方法[转]
- c# 读取写入excel单元格(包括对excel的一些基本操作)
- C#中对XML文件的一些基本操作
- C# :线程中操作多控件 (委托实现异步及同步的方法)
- c# 使用ChartDirector绘图的一些个人体会
- C# 对sharepoint 列表的一些基本操作,包括添加/删除/查询/上传文件给sharepoint list添加数据
- C#的一些笔记(委托和反射)
- 发现一些个人开发者应用