C#简单实现子窗体向父窗体传值的方法

C# 简单实现子窗体向父窗体传值有多种方法,下面介绍两种常用的方法。

方法一:使用属性

  1. 在子窗体中定义一个属性,用于存储需要传递的值。
public partial class ChildForm : Form
{
    private string _value;
    public string Value
    {
        get { return _value; }
        set { _value = value; }
    }

    // ...
}
  1. 在父窗体中打开子窗体,并设置子窗体的属性值。
private void btnOpenChildForm_Click(object sender, EventArgs e)
{
    ChildForm childForm = new ChildForm();
    childForm.Value = "Hello, World!";
    childForm.ShowDialog();
}
  1. 在子窗体的关闭事件中,将属性值传回给父窗体。
private void btnClose_Click(object sender, EventArgs e)
{
    this.DialogResult = DialogResult.OK;
}

private void ChildForm_FormClosing(object sender, FormClosingEventArgs e)
{
    if (this.DialogResult == DialogResult.OK)
    {
        ParentForm parentForm = (ParentForm)this.Owner;
        parentForm.SetTextBoxValue(this.Value);
    }
}
  1. 在父窗体中定义一个方法,用于接收子窗体传回的值。
public void SetTextBoxValue(string value)
{
    textBox1.Text = value;
}

方法二:使用事件

  1. 在子窗体中定义一个事件,并在需要传值的地方触发该事件。
public partial class ChildForm : Form
{
    public delegate void ValueChangedEventHandler(object sender, ValueChangedEventArgs e);
    public event ValueChangedEventHandler ValueChanged;

    private void btnOk_Click(object sender, EventArgs e)
    {
        ValueChangedEventArgs args = new ValueChangedEventArgs();
        args.Value = "Hello, World!";
        ValueChanged?.Invoke(this, args);
        this.Close();
    }
}

public class ValueChangedEventArgs : EventArgs
{
    public string Value { get; set; }
}
  1. 在父窗体中打开子窗体,并订阅子窗体的 ValueChanged 事件。
private void btnOpenChildForm_Click(object sender, EventArgs e)
{
    ChildForm childForm = new ChildForm();
    childForm.ValueChanged += ChildForm_ValueChanged;
    childForm.ShowDialog();
}

private void ChildForm_ValueChanged(object sender, ValueChangedEventArgs e)
{
    textBox1.Text = e.Value;
}

以上两种方式都可以实现子窗体向父窗体传值,根据具体情况选择适合的方式即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#简单实现子窗体向父窗体传值的方法 - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • asp.net中动态改变网页标题的代码

    当我们开发一个ASP.NET网站时,通常需要根据不同的内容动态改变网页的标题。这个过程可以通过C#的代码实现。下面是详细的攻略: 步骤1:引用命名空间 首先,需要在页面的C#代码文件中引用System.Web命名空间,这个命名空间提供了许多ASP.NET应用程序的核心功能。 using System.Web; 步骤2:编写代码 在页面的C#代码文件中,可以在…

    C# 2023年5月31日
    00
  • C# Winform 调用系统接口操作 INI 配置文件的代码

    关于C# Winform调用系统接口操作INI配置文件的代码,下面是详细的攻略: 1. 什么是INI文件 INI文件是一种配置文件格式,全称叫做Initial file,是一种比较老式的配置文件格式。它的结构非常简单,通常包含了若干个节(section)和各个节下的键值对(key-value pair)。INI文件的格式如下: [section1] key1…

    C# 2023年6月7日
    00
  • Unity实现车型识别的示例代码

    下面就是Unity实现车型识别的完整攻略。 环境准备 在开始前,请确保你已经按照Unity开发的常规流程,搭建好了开发环境。并且已经安装好了Vuforia引擎,可以顺利地在Unity 中进行二维码识别、3D 模型跟踪等处理操作。 示例1:车型识别的基本实现 1.创建识别库: 在Vuforia的开发者后台中,创建一个识别库,可以使用目标生成器(Target M…

    C# 2023年6月3日
    00
  • C#网络爬虫代码分享 C#简单的爬取工具

    来看一下如何使用C#编写一个简单的网络爬虫。 1. 网络爬虫简介 网络爬虫是指一种自动获取网站信息的程序,也被称为网络蜘蛛、网络机器人等。可以通过网络爬虫将网站上的信息进行抓取、存储等操作。对于开发人员而言,网络爬虫可以帮助我们从网站中快速获取目标信息,例如,爬取用户评论、商品信息、文章标题等等。 2. 爬虫实现原理 网络爬虫的实现原理主要是通过HTTP协议…

    C# 2023年6月1日
    00
  • WPF+ASP.NET SignalR实现动态折线图的绘制

    下面是详细的攻略: 简介 本文介绍如何使用 WPF 和 ASP.NET SignalR 实现动态折线图的绘制。WPF 是一个用于创建 Windows 应用程序的 UI 框架,而 ASP.NET SignalR 是一个用于实现实时应用程序的框架,两者结合可以实现实时折线图的绘制。 准备工作 在开始实现动态折线图之前,我们需要准备以下工具: Visual Stu…

    C# 2023年6月3日
    00
  • 解决C#调用dll提示

    下面我将为您详细讲解“解决C#调用dll提示”的完整攻略。 1.了解动态链接库 首先,我们需要了解什么是动态链接库。动态链接库(Dynamic Link Library,缩写为DLL)是Windows下的一种动态链接库文件,包含可重定位的代码、数据和资源,可以被多个软件程序同时使用。 2.将dll文件添加到项目中 在使用dll文件之前,我们需要将其添加到我们…

    C# 2023年5月15日
    00
  • WinForm导出文件为Word、Excel、文本文件的方法

    WinForm是一种典型的Windows桌面应用程序开发技术,它提供了丰富的界面控件和处理逻辑的能力。在WinForm应用中,我们需要经常使用到文件导出功能,常见的导出格式包括Word文档、Excel文档以及文本文件。本篇攻略将详细介绍WinForm导出文件为Word、Excel、文本文件的方法,并提供两个示例说明。 1. 导出Word文档 1.1 安装并引…

    C# 2023年6月1日
    00
  • 基于c# Task自己动手写个异步IO函数

    下面就来详细讲解“基于c# Task自己动手写个异步IO函数”的攻略。 1. 了解异步IO 异步IO(Asynchronous IO)是指用户空间应用程序在发起IO请求后立即返回控制权给操作系统,并且不需要等待IO操作完成,而是通过回调函数或者等待通知的方式来获取IO完成的结果。 相对于同步IO(Synchronous IO),异步IO能够充分利用计算机的多…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部