利用委托的方法实现2个窗体之间的通信的一个小练习
2016-05-04 14:44
531 查看
-----------
发送端窗体代码-------------
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 用委托的方法进行2个窗体之间的通讯
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public DelegateConnect send;//第二步:定义一个委托的对象
//这里为什么没有直接用DelegateConnect send=new DelegateConnect(方法名);
//因为这里需要传的方法参数是在Form1(接受端)定义的,并且在Form1里面进行绑定 int count = 0;
private void button1_Click(object sender, EventArgs e)
{
count++;
if (send != null)
{
send(count.ToString());//第四步:给委托对象需要调用的函数传递参数;
}
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
public delegate void DelegateConnect(string str);//第一步:声明一个委托的类
}
----------- 接收端窗体代码-------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 用委托的方法进行2个窗体之间的通讯
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form2 form = new Form2();
form.Show();
form.send = this.receive;//第三步:在这里让委托的对象send跟receive方法(函数)绑定
//让委托的这个对象去调用receive这个函数
//而这个函数的参数由Form2的send(count.ToString());这句来传递过来
}
private void Form1_Load(object sender, EventArgs e)
{
}
public void receive(string str)
{
textBox1.Text = str;
}
}
}
相关文章推荐
- 网上订餐系统源码SSH+bootstrap+mysql
- 矩阵快速幂 HDU1575
- MongoDB模糊查询
- tcp的半连接攻击和全连接攻击--TCP_DEFER_ACCEPT
- 移动SDSDK安装指南
- eclipse调试java程序的九个技巧
- Scrum 项目1.0
- STM32F103 USART-DMA不定长收发
- 下面简单介绍一下版本更新的功能(进度条在通知栏显示)
- 根据宽高自动拉伸ImageView
- Android事件分发下
- Nginx+ 多个Memcached+ 多个Tomcat集群配置来实现 sticky Session
- JS 获取 地址栏 参数
- 根据手机号获取地域 获取到市
- StoreKit--SKStoreProductViewController
- MongoDB游标
- Android属性动画(ObjectAnimator、PropertyValuesHolder、ValueAnimator、AnimatorSet)
- rsync安装使用
- Codeforces Beta Round #7 C. Line 扩展欧几里德
- DB2 只进行单个表空间的恢复