网站门户建设流程,汽修网站建设免费,网站建设 考核指标,韩国网站C#实现Winform窗口间数据交互的三种方法介绍 2010-03-15 来自#xff1a;CNBLOG 字体大小#xff1a;【大 中 小】摘要#xff1a;本文分别介绍C#实现Winform窗口间数据交互的三种方法#xff1a;修改子窗体的构造函数、给窗体添加属性或方法、通过委托的方法#xff0c…C#实现Winform窗口间数据交互的三种方法介绍 2010-03-15 来自CNBLOG 字体大小【大 中 小】 摘要本文分别介绍C#实现Winform窗口间数据交互的三种方法修改子窗体的构造函数、给窗体添加属性或方法、通过委托的方法并提供简单的示例代码供参考。 1、修改子窗体的构造函数 简单地说就是通过修改子窗体Form的构造函数如下所示 public Frm_Child(string Para1, ArrayList List1, TextBox textBox1, Form. Frm_Main) { InitializeComponent(); } 上面的例子中为子窗体Frm_Child添加了4个参数分别是字符串Para1字符数组List1文本控件textBox1和父窗体Frm_Main下面简单区分一下它们各自的特点 1 字符串单向的值传递在子窗体中不能通过修改此参数的值来间接改变父窗体中的数据。 2 字符数组引用型传递可以通过将父子窗体中不同的成员变量指向相同的数组即可实现变更一方同时更新对方的数据。 3 控件引用型传递可以通过修改该控件的数据来直接达到控制父窗体中该控件数据的目的。 4 窗体 这个最直接直接将父窗体传递到子窗体中我们可以方便地在子窗体中修改父窗体中所有授权为public 的数据。 2、给窗体添加属性或方法 获取或设置拥有此窗体的窗体。若要使某窗体归另一个窗体所有请为其 Owner 属性分配一个对将成为所有者的 窗体的引用。当一个窗体归另一窗体所有时它便随着所有者窗体最小化和关闭。例如如果 Frm_Child 归窗体 Frm_Main所有则关闭或最小化 Frm_Main 时也会关闭或最小化 Frm_Child。并且附属窗体从不显示在其所有者窗体后面。可以将附属窗体用于查找和替换窗口之类的窗口当选定所有者窗体时这些窗口不应消失。若要确定某父窗体拥有的窗体请使用OwnedForms属性。 我们可以通过下面的方式来确定这种从属的窗体关系 Frm_Child form. new Frm_Child(); form.Owner this; form.ShowDialog(); 或者 Frm_Child form. new Frm_Child(); form.ShowDialog(this); 定了从属关系以后我们就可以通过在Form的load事件中或者通过定义public的属性或者方法来彼此进行数据修改操作简单操作如下 Frm_Main pareForm. (Frm_Main)this.Owner; this.listData1 pareForm.ListData2; 3、通过委托的方法 相对以上两种方法来说这种方法可能较复杂一些但基本思路是一样的需要修改的地方如下 1 在Frm_Child.cs中添加委托函数定义public delegate void SendFun(string str); 2 在Frm_Child.cs中添加委托示例public event SendFun SendToParent; 3 在Frm_Child.cs中添加一个按钮并添加其事件如下 private void button1_Click(object sender, EventArgs e) { if (Send ! null) { Send(this.textBox1.Text); } } 4 在Frm_Main.cs中添加方法RecvInfo()方法如下 private void RecvInfo (string str) { textBox1.Text str; } 5 在Frm_Main.Designer.cs中的InitializeComponent()方法中添加委托实例定义 this.myForm.Send new Example3_Frm_Child. SendFun (RecvInfo); 通过上面五步操作即可达到Form间的通信的目的。 以上介绍的就是C#实现Winform窗口间数据交互的三种方法希望对你了解C#实现Winform窗口间数据交互有所帮助。 转载于:https://www.cnblogs.com/bantongshui/p/3196422.html