• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#使用委托(delegate)实现在两个form之间传递数据的方法

C#使用委托(delegate)实现在两个form之间传递数据的方法

作者:lele 字体:[增加 减小] 来源:互联网 时间:2017-05-28

lele 通过本文主要向大家介绍了c#delegate,c#中delegate,c#delegate 张子阳,c#中delegate的用法,c#delegate event等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#使用委托(delegate)实现在两个form之间传递数据的方法。分享给大家供大家参考。具体分析如下:

关于Delegate【代理、委托】是C#中一个非常重要的概念,向前可以推演到C++的指针,向后可以延续到匿名方法、lambda表达式。

现在我就从一个最简单最实用的一个小例子出发分析一下Delegate的使用。

现在有两个窗体Form1和Form2。

两个按钮Button1(Form)和Button2(Form2)。

Form1的代码:

private void button1_Click(object sender, EventArgs e)
{
  Form2 frm = new Form2(textBox1.Text);
  frm.SetProperty += new Form2.DelegateText(SetProperty2);
  frm.ShowDialog();
}
private void SetProperty2()
{
  MessageBox.Show("ok");
}
</div>

Form2的代码:

public delegate void DelegateText();
public DelegateText SetProperty;
private void button2_Click(object sender, EventArgs e)
{
  SetProperty();
}
</div>

分析者两段简短的代码,可以看出一些Delegate的好处,之前我写这个功能的时候是将form1的对象传给form2,点击form2之后再铜鼓from1的对象调用form1的public方法,这样的代码总觉得很别扭,也就是所谓的类型不安全,需要公开所要调用的方法,还需要将form1的对象传递至form2中,显然不是最佳的方案。

现在有了Delegate问题就迎刃而解了,相当于new form2的时候,我让form2代替我去更新属性的操作,这样我的方法不需要暴露出来,而form2也只能调用这一个方法,也就达到了所谓的类型安全的说法,此虽是个小例子,但是却能管中窥豹,看到一些Delegate的好处。

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#使用委托(delegate)实现在两个form之间传递数据的方法
  • C#匿名方法与Delegate类型转换错误分析
  • C#事件处理和委托event delegate实例简述
  • C# 委托(delegate) 的小例子

相关文章

  • 2017-05-28c#典型工厂化实现实例
  • 2017-05-28c#模拟js escape方法的简单实例
  • 2017-05-28C#微信公众平台开发之access_token的获取存储与更新
  • 2017-05-28C#中自定义事件和委托实例
  • 2017-05-28C#使用Selenium+PhantomJS抓取数据
  • 2017-05-28C#由当前日期计算相应的周一和周日的实例代码
  • 2017-05-28详解C# Socket编程笔记
  • 2017-05-28C#批量更新sql实例
  • 2017-05-28C#中Socket通信用法实例详解
  • 2017-05-28C#编程实现简易图片浏览器的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现用户自定义控件中嵌入自己的图标
    • Winform动态加载TabControl用法实例
    • C#控件命名规范汇总(超详细)
    • C#中Monitor对象与Lock关键字的区别分析
    • 轻松学习C#的装箱与拆箱
    • c#使用简单工厂模式实现生成html文件的封装类分享
    • C#使用系统方法发送异步邮件完整实例
    • 学习Winform文本类控件(Label、Button、TextBox)
    • C#窗体显示留言时间的方法
    • C#验证给定字符串形式日期是否合法的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有