三沣开发知识 购物 网址 游戏 小说 歌词 地图 快照 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 开发 租车 短信 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题
autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程 CSS/HTML/Xhtml
html5 CSS XML/XSLT Dreamweaver教程 经验交流 开发者乐园 Android开发资料
站长资讯 .NET新手 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA VisualStudio ASP.NET-MVC .NET控件开发 EntityFramework WinRT-Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动 Html-Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP OracleERP DynamicsCRM K2 BPM 信息安全 企业信息 Android开发 iOS开发 WindowsPhone WindowsMobile 其他手机 敏捷开发 项目管理 软件工程 SQLServer Oracle MySQL NoSQL 其它数据库 Windows7 WindowsServer Linux
  IT知识库 -> C# -> 利用委托与事件进行两个窗体之间的参数传递实例 -> 正文阅读
 

[C#]利用委托与事件进行两个窗体之间的参数传递实例

利用委托与事件进行两个窗体之间的参数传递实例 利用委托与事件进行两个窗体之间的参数传递实例
引用:http://blog.sina.com.cn/s/blog_49e3ed640102w0wm.html
在程序开发中,我们会经常进行不同窗体之间的参数传递,那么如何进行传递更好方便有效呢?实际上我们利用委托和事件进行这项工作是一个不错的选择。今天我们通过一个简单的例子进行说明。大概的思路是建立一个传递参数的类,在类中定义一个带参数的委托,申明一个委托的事件,并定义一个触发事件的带参数的方法。由窗体A中调用类的带参数的方法,从而触发事件,并将窗体A中的参数传递给委托事件,再由委托事件将参数传递给窗体B中的方法,些方法将传递过来的参数写入窗体B中。
具体方法如下:
1、定义一个传递参数的类
 public static class chuancan
    {
        public delegate void delegateycyhande(string str1,string str2 );//定义一个委托
        public static event delegateycyhande chuanevent;//申明一个事件
        public static void Dodelegateycyhande(string str1,string str2)//定义一个触发事件的方法
        {
            chuanevent(str1,str2);
        }
    }
2、父窗体程序
 public partial class mf : Form
    {
        public mf()
        {
            InitializeComponent();
            chuancan.chuanevent+=new chuancan.delegateycyhande(this.DoMethod);//在构造函数中关联事件,这一点很重要。
        }
        public void DoMethod(string getstr1,string getstr2)//为listbox赋值的方法
        {
            string str = getstr1;
            str += "    ";
            str+=getstr2;
            listBox1.Items.Add(str);
        }
        private void bt_zairucf_Click(object sender, EventArgs e)// 打开子窗体
        {
            cf cf1 = new cf();
            cf1.Show();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
        }
    }
3.子窗体程序
 public partial class cf : Form
    {
        public cf()
        {
            InitializeComponent();
        }
       private void bt_zairu_Click_1(object sender, EventArgs e)
        {
 //调用chuancan类中的Dodelegateycyhande方法来激发事件
            chuancan.Dodelegateycyhande(this.textBox1.Text, this.textBox2.Text);
            textBox1.Text = "";
            textBox2.Text = "";
            textBox1.Focus();
        }
}
程序运行时,首先显示的是父窗体,通过按键开启子窗体,在子窗体中输入信息,点击按钮,将信息传递给父窗体的显示控件。
当然这个例子中介传递两个参数,我们可以根据需要增加参数的个数。
另外我在练习这个编程时,还发现一个有趣的事情。那就是我不想通过按钮来触发事件,而是想通过子窗体中的文本框的属性的值的改变即textchanged事件来触发委托事件,结果就出现了我意想不到的效果:我在子窗体的textbox中输入一个字符如“我”,父窗体listbox中马上就出现一个字符“我”,这个很正常吧,我接着在textbox中输入一个“们“,父窗体listbox中不是出现一个”们“,而是在第二行出现”我们“,第一行出现”我“;我又接着输入一个”是“ ,父窗体listbox中第三行出现”我们是“......,也就我在textbox 中每增加 一个字,listbox就会新增一行并把textbox所有信息显示出来。反过来如果我每减少一个字,listbox就会少一个字并显示现有的所有字符,很是有趣吧,这倒底是为什么呢?可能与委托事件触发的机制有关吧!
 
         

  C# 最新文章
一个小时学会MySQL数据库
使用重绘项美化WinForm中的控件
c# Http下载文件
Autofac的简单使用
C#中的装箱(inboxing)和拆箱(unboxing)(简
C# Random 实现 long型随机数
委托与匿名委托
02、Win
C#最实用的快捷键
C#矩阵运算类库
上一篇文章      下一篇文章      查看所有文章
加:2017-10-12 23:21:44  更:2017-10-12 23:21:48 
 
技术频道: 站长资讯 .NET新手区 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA Visual Studio ASP.NET MVC .NET控件开发 Entity Framework WinRT/Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动设计 Html/Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP Oracle ERP Dynamics CRM K2 BPM 信息安全 企业信息化其他 Android开发 iOS开发 Windows Phone Windows Mobile 其他手机开发 敏捷开发 项目与团队管理 软件工程其他 SQL Server Oracle MySQL NoSQL 其它数据库 Windows 7 Windows Server Linux
脚本语言: vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程
网站开发: CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流 开发者乐园 Android开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2017年10日历
2017-10-22 7:11:41
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT知识库