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日

相关文章

  • vista和win7在windows服务中交互桌面权限问题解决方法:穿透Session 0 隔离

    在Windows操作系统中,服务是一种常见的后台程序,它可以在系统启动时自动运行,并在后台执行某些任务。在本攻略中,我们将详细介绍如何在Windows服务中解决桌面权限问题,并提供两个示例来说明其用法。 以下是两个示例,介绍如何在Windows服务中解决桌面权限问题: 示例一:使用Win32 API穿透Session0隔离 首先,我们需要使用Win32 AP…

    C# 2023年5月15日
    00
  • C#数组学习相关资料整理

    C# 数组学习相关资料整理 数组的定义 数组是一种能够容纳多个值的数据结构,在 C# 中也不例外。变量能够存储一个值,但有些时候我们需要存储一组相似类型的值,这种情况下我们就需要使用数组了。 声明数组 在 C# 中声明数组的方式非常简单,如下所示: // 声明一个整型数组 int[] myArray; // 声明一个字符串数组 string[] myStri…

    C# 2023年5月31日
    00
  • C# 基于消息发布订阅模型的示例(上)

    让我来详细讲解一下「C# 基于消息发布订阅模型的示例(上)」的完整攻略。 什么是消息发布订阅模型? 消息发布订阅模型是一种系统架构模式,它支持应用程序之间的松耦合通信,允许一个事件的发布者将事件发送给多个订阅者。在这种模式中,发布者并不知道订阅者的存在,订阅者则会接收到发布者发布的所有事件。 实现消息发布订阅模型的步骤 以下是实现消息发布订阅模型的基本步骤:…

    C# 2023年5月31日
    00
  • C#修改MAC地址类的实例

    首先我们需要明确一下”C#修改MAC地址类的实例”到底指什么。MAC地址是指网络适配器(网卡)上的物理地址,每张网卡都有唯一的MAC地址,它的作用是在局域网中进行唯一标识和寻址。而”C#修改MAC地址类的实例”指的是通过C#编程语言编写一个可以修改MAC地址的类,并实例化这个类,这样我们就可以在程序中使用这个类来修改MAC地址。 下面是具体的攻略: 1. 了…

    C# 2023年6月7日
    00
  • asp.net 数据类型转换类代码

    当在ASP.NET中开发应用程序时,将涉及到将不同数据类型之间进行转换的情况,例如将字符串转换为整数、将浮点数转换为字符串等等。为了简化这些转换过程,ASP.NET提供了多个转换类,包括Convert类和Parse类。 一、Convert类 Convert类提供了各种从一种数据类型到另一种数据类型的静态方法。常用的方法包括: ToInt32()方法:将字符串…

    C# 2023年5月31日
    00
  • REST架构及RESTful应用程序简介

    REST架构及RESTful应用程序简介 REST(Representational State Transfer)是一种基于HTTP协议的Web服务架构。RESTful应用程序是符合REST架构的应用程序。本文将介绍REST架构及RESTful应用程序的基本概念和实现方法。 REST架构的基本概念 REST架构的基本概念包括资源、URI、HTTP方法和状态…

    C# 2023年5月15日
    00
  • 浅谈C# 序列化与反序列化几种格式的转换

    下面是 “浅谈C# 序列化与反序列化几种格式的转换” 的完整攻略: 目录 什么是序列化与反序列化 为什么需要序列化与反序列化 C# 中实现序列化与反序列化的几种方式 XML 序列化与反序列化 JSON 序列化与反序列化 Binary 序列化与反序列化 示例说明 XML 序列化与反序列化示例 JSON 序列化与反序列化示例 什么是序列化与反序列化 序列化(Se…

    C# 2023年5月31日
    00
  • WinForm项目开发中NPOI用法实例解析

    WinForm项目开发中NPOI用法实例解析 在WinForm项目开发过程中,Excel文件的读写是一个常见的需求。NPOI是一个.NET下的开放源代码Excel读写库,可以很好地实现WinForm应用中Excel文件的读取和写入,下面是NPOI用法的实例解析。 步骤1:引用NPOI库 NPOI库可以从NuGet上引用或者在官网上下载后手动添加。如果使用Nu…

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