`
coconut_zhang
  • 浏览: 541844 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

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;  

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窗口间数据交互的三种方法介绍C#实现Winform窗口间数据交互的三种方法介绍

    C#控制WinForm窗体间数据交互的方法

    以上介绍了三种在WinForm窗体间进行数据交互的方法:自定义构造函数、使用接口以及使用委托。每种方法都有其适用场景和优缺点。开发者应根据项目的具体需求选择最适合的方法。在实际开发过程中,推荐使用后两种方法...

    winform与内嵌echarts的数据交互,让数据动起来.rar

    之前下载了winform实现Echart统计图(基于webBrowser)有了echart在winform的应用。但发现他实际上是静态页面的,统计图未有数据交互功能。本例主要通过C#winform给echart赋值,实现数据动态交互。

    基于C#开发的Winform软件,工业数据交互软件

    在本文中,我们将深入探讨基于C#开发的Winform软件,特别是针对工业数据交互的应用。该软件设计用于高效地从各种工业设备中收集和处理数据,包括西门子、欧姆龙、三菱、松下PLC(可编程逻辑控制器)以及Modbus仪表,...

    C#WebBrowser页面与Winform交互技巧

    ### C# WebBrowser页面与Winform交互技巧 在开发基于Windows平台的应用程序时,经常需要使用WebBrowser控件来在Winform应用程序中嵌入网页内容,并且可能需要与这些网页内容进行交云。本文将详细介绍如何在C#中实现...

    c# winform与html交互

    总之,C# WinForm与HTML的交互是桌面应用与Web技术结合的一种有效方式,尤其在需要在桌面环境中利用Web技术的场景下。通过理解上述概念和技术,开发者可以构建出功能丰富的混合应用程序。对于初学者来说,这个实例是...

    WinForm下WebView2实现JS与C#交互Demo

    本示例“WinForm下WebView2实现JS与C#交互Demo”就展示了如何在C#中使用WebView2控件来实现JavaScript与C#之间的双向通信。 首先,确保已安装Microsoft Edge WebView2 SDK。可以通过NuGet包管理器安装`Microsoft....

    C# Winform和网页表单交互(提交和获取)

    本主题将探讨如何在C# Winform应用程序中与网页表单进行交互,包括数据的提交和获取。 首先,Winform是.NET Framework提供的一种创建Windows桌面应用程序的方式。在Winform应用中,用户界面通常由各种控件(如按钮...

    C#实现Winform中打开网页页面的方法

    总结来说,C#中实现Winform打开网页页面的方法主要包括使用`System.Diagnostics.Process.Start()`以及使用`WebBrowser`控件。`WebBrowser`控件不仅能够展示网页,还可以执行JavaScript代码,为开发者提供了更灵活的...

    C#_WinForm实现WebSocket及时通讯

    WebSocket是一种在客户端和服务器之间建立持久连接的协议,它允许双方进行双向通信,极...通过这个项目,开发者可以学习如何在Windows桌面应用中实现双向、实时的数据传输,这对于构建现代交互式应用是非常重要的技能。

    C#实现Winform实现区域截屏

    在本文中,我们将深入探讨如何使用C#编程语言在Windows Forms(Winform)环境中实现一个区域截屏功能。首先,我们需要了解Winform的基本概念,它是.NET Framework中的一个库,用于构建桌面应用程序,提供了丰富的...

    C# Winform 实现窗体间切换

    在C# Winform应用开发中,窗体间的切换是一个常见的需求,这通常涉及到多个窗体之间的交互和数据管理。本示例"SwitchOver"演示了如何在一个主窗体中通过按钮来平滑地在三个子窗体之间进行切换,同时确保在切换过程中...

    C#实现winform压缩解压文件夹

    在C#编程环境中,开发一个WinForm应用来实现文件夹的压缩与解压缩功能,可以极大地提高工作效率,尤其是在处理大量数据或文件时。WinForm是.NET Framework提供的一个用于创建桌面应用程序的用户界面框架,而C#语言的...

    C# winform实现表数据导出到Excel表格

    在这个项目中,开发人员可能使用了以下步骤来实现数据导出: 1. 连接SQL Server 2005:使用ADO.NET或Entity Framework建立与数据库的连接,获取数据。 2. 查询数据:执行SQL查询语句,将所需表的数据加载到内存中的...

    C# Winform进度条 数据加载等待控件

    总的来说,"C# Winform进度条 数据加载等待控件"是一个实用的工具,它结合了线程技术和友好的用户界面设计,为C# Winform开发者提供了一种有效管理长时间运行任务和提升用户体验的方法。只需简单的集成和配置,你就...

    C# 打印winform上数据

    通过以上步骤,你可以在VS2008的C# WinForms应用中实现数据的打印功能。记得在实际项目中根据具体需求进行调整,例如处理各种异常情况,优化打印性能,以及提供更丰富的用户交互选项。对于复杂的数据结构,可能还...

    c#WINFORM与WEB的直接交互非webservice方法

    "C# WinForm与Web的直接交互非WebService方法"是一个重要的主题,因为它涉及到不同应用层之间的通信,而无需通过传统的Web服务作为中介。 WinForms是.NET Framework的一部分,它提供了构建用户界面的控件和事件处理...

    c#_winForm_数据绑定Demo

    【C# WinForm 数据绑定】是Windows应用程序开发中的一个重要概念,它允许开发者将用户界面控件(如文本框、列表视图等)直接与数据源连接,实现数据的动态显示和更新。在这个“c#_winForm_数据绑定Demo”中,我们...

    c#winform和flash交互

    通过以上步骤,你可以实现在C# WinForms应用程序中与Flash的有效交互,实现数据交换和功能联动。这在需要在桌面应用中集成多媒体、游戏或互动元素时非常有用。然而,随着HTML5的普及,现代Web技术如WebGL和...

    C#Winform实现打开第三方应用程序实例

    在C# WinForm开发中,有时我们需要集成或调用系统中已经安装的第三方应用程序,以扩展我们应用程序的功能或提供更多的用户交互。这个实例将详细讲解如何在C# WinForm应用中实现这一目标。 首先,我们需要了解`...

Global site tag (gtag.js) - Google Analytics