C#实现Winform间的数据交互的三种方法

使用.NET编写winform程序,比较常见的一种情况就是如何实现Form间的数据交互,下面就简单总结一下常见的几种数据交互方式:

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间的通信的目的。

时间: 2024-09-14 15:26:32

C#实现Winform间的数据交互的三种方法的相关文章

在.net中轻松掌握Windows窗体间的数据交互(三)

window|交互|数据 在.net中轻松掌握Windows窗体间的数据交互(三) zhzuo(秋枫) 在第一篇和第二篇文章中我们使用带参数的构造函数.属性以及方法实现了数据的交互,接下来要讲的是使用静态类来完成窗体间的数据交互.这个也是我们经常要用到的一种数据交互方法. 三.使用静态类 下面是定义的一个类: using System; using System.Collections; namespace ZZ { public class AppDatas { private static

.net MVC 连接数据本地数据库三种方法总结_实用技巧

.net MVC 连接数据本地数据库三种方法 <appSettings> <add key="webpages:Version" value="2.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="PreserveLoginUrl" value="true" />

别被数据分析师骗了!用数据说谎的三种办法

雷锋网按:日前,亚马逊欧洲商业智能部门负责人.资深数据科学家 Karolis Urbonas,在发表了题为<用数据说谎>的博文.文章总结了用数据误导人最常见的三种方法.这三种做法,或许大家在潜意识里都知道,但未必会把它们与"用数据说谎"联系起来. 当然,作者的目的,是希望数据科学.机器学习从业者引以为戒.全文由雷锋网编译,做了不改变原意的删改. Karolis Urbonas "用数据说话",这句话常被大家挂在口边. 自大学起,那些希望我们养成批判.逻辑

在.net中轻松掌握Windows窗体间的数据交互

window|交互|数据 Windows 窗体是用于 Microsoft Windows 应用程序开发的.基于 .NET Framework 的新平台.此框架提供一个有条理的.面向对象的.可扩展的类集,它使您得以开发丰富的 Windows 应用程序.一个Windows窗体就代表了.NET架构里的System.Windows.Forms.Form类的一个实例. 作者在CSDN技术论坛.NET板块下的C#分类经常看到有人问起如何在两个Form间传递数据,访问修改对方窗体里面的值.对于有经验的程序员来

在.net中轻松掌握Windows窗体间的数据交互(一)

window|交互|数据 在.net中轻松掌握Windows窗体间的数据交互(一) zhzuo(秋枫) Windows 窗体是用于 Microsoft Windows 应用程序开发的.基于 .NET Framework 的新平台.此框架提供一个有条理的.面向对象的.可扩展的类集,它使您得以开发丰富的 Windows 应用程序.一个Windows窗体就代表了.NET架构里的System.Windows.Forms.Form类的一个实例. 作者在CSDN技术论坛.NET板块下的C#分类经常看到有人问

在.net中轻松掌握Windows窗体间的数据交互(二)

window|交互|数据 在.net中轻松掌握Windows窗体间的数据交互(二) zhzuo(秋枫) <在.net中轻松掌握Windows窗体间的数据交互(一)>一文中我们讲了使用带参数的构造函数来实现窗体间的数据传递,我认为是用的比较多的一种,接下来让我们看看另外两种实现方法. 二.给窗体添加属性或方法 1.使用Form类的Owner属性 获取或设置拥有此窗体的窗体.若要使某窗体归另一个窗体所有,请为其 Owner 属性分配一个对将成为所有者的窗体的引用.当一个窗体归另一窗体所有时,它便随

ASP.NET页面间数据传递的9种方法

本文我们将讨论的是ASP.NET页面间数据传递的几种方法,对此希望能帮助大家正确的理解ASP.NET页面间数据传递的用处以及便利性. 0.引言 Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种

基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括获取数据并显示,插入新数据到服务器,更新数据,删除数据等操作. 1.利用Jquery获取数据并显示 为了顺利获取数据,我们需要保持页面端调用和服务器端保持一致,并相应的把数据转换或者封装为对象实体进行处理. 下面我们以一个简单的全国省份.全国城市.全国城市行政区的案例进行Demo代码的介绍.    

Excel单元格中数据自动换行的两种方法

Excel单元格中数据自动换行的两种方法   不管单元格中是已经有了数据,或者还等待输入数据,都可以对它执行自动换行命令.自动换行的方法有两种,现在就来对下面表格中已经超出单元格宽度的数据使用自动换行. Excel单元格中数据自动换行的方法一 选择要换行的单元格(可以是一个,也可以是多个),然后切换到"开始"选项卡,单击"对齐方式"组中的"自动换行"命令. Excel单元格中数据自动换行的方法二 1.选中要换行的单元格,单击鼠标右键,在弹出的菜单