利用委托与事件进行两个窗体之间的参数传递实例_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 利用委托与事件进行两个窗体之间的参数传递实例

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

 2017/10/12 19:25:43  绛河  程序员俱乐部  我要评论(0)
  • 摘要:利用委托与事件进行两个窗体之间的参数传递实例引用:http://blog.sina.com.cn/s/blog_49e3ed640102w0wm.html在程序开发中,我们会经常进行不同窗体之间的参数传递,那么如何进行传递更好方便有效呢?实际上我们利用委托和事件进行这项工作是一个不错的选择。今天我们通过一个简单的例子进行说明。大概的思路是建立一个传递参数的类,在类中定义一个带参数的委托,申明一个委托的事件,并定义一个触发事件的带参数的方法。由窗体A中调用类的带参数的方法,从而触发事件
  • 标签:事件 利用 实例

class="titName SG_txta">利用委托与事件进行两个窗体之间的参数传递实例

引用: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就会少一个字并显示现有的所有字符,很是有趣吧,这倒底是为什么呢?可能与委托事件触发的机制有关吧!

利用委托与事件进行两个窗体之间的参数传递实例(一) 

         利用委托与事件进行两个窗体之间的参数传递实例(一)
发表评论
用户名: 匿名