LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# WinForms父子窗体传值详解

admin
2024年12月1日 8:41 本文热度 141

在C# WinForms中,父窗体与子窗体之间传值是一个常见的需求。以下是详细的实现步骤和示例代码。

1. 创建父窗体

首先,创建一个父窗体,里面有一个按钮,用于打开子窗体。

// ParentForm.csusing System;using System.Windows.Forms;public class ParentForm : Form{    private Button openChildButton;    private Label displayLabel;
   public ParentForm()    {        openChildButton = new Button() { Text = "打开子窗体", Left = 50, Top = 20 };        displayLabel = new Label() { Left = 50, Top = 60, Width = 200 };
       openChildButton.Click += OpenChildButton_Click;
       Controls.Add(openChildButton);        Controls.Add(displayLabel);    }
   private void OpenChildButton_Click(object sender, EventArgs e)    {        ChildForm childForm = new ChildForm();        childForm.ValuePassed += ChildForm_ValuePassed; // 订阅子窗体传值事件        childForm.Show(); // 显示子窗体    }
   private void ChildForm_ValuePassed(object sender, string value)    {        displayLabel.Text = "接收到的值: " + value; // 更新父窗体的标签    }
   [STAThread]        static void Main()    {        Application.EnableVisualStyles();        Application.Run(new ParentForm());    }}


2. 创建子窗体

接下来,创建一个子窗体,里面有一个文本框和一个按钮,当按钮被点击时,将文本框的内容传递回父窗体。

// ChildForm.csusing System;using System.Windows.Forms;public class ChildForm : Form{    private TextBox inputTextBox;    private Button sendButton;
   public event EventHandlerValuePassed; // 声明事件
   public ChildForm()    {        inputTextBox = new TextBox() { Left = 20, Top = 20, Width = 200 };        sendButton = new Button() { Text = "发送值", Left = 20, Top = 60 };
       sendButton.Click += SendButton_Click;
       Controls.Add(inputTextBox);        Controls.Add(sendButton);    }
   private void SendButton_Click(object sender, EventArgs e)    {        // 触发事件,将值传递回父窗体        ValuePassed?.Invoke(this, inputTextBox.Text);        this.Close(); // 关闭子窗体    }}


3. 运行程序

父窗体会有一个按钮“打开子窗体”,点击后会打开子窗体。    

在子窗体中输入一些文本并点击“发送值”按钮,此时文本框中的值会通过事件传递给父窗体。

父窗体会显示接收到的值。

关键点说明:

事件:为了实现父子窗体之间的通信,使用了事件 ValuePassed,这个事件在子窗体中定义,并在发送值的的方法中被触发。

事件订阅:父窗体在创建子窗体后,通过 += 运算符订阅了子窗体的事件,来处理值的接收。

通过以上步骤,您可以实现父子窗体之间的值传递。希望这个示例对您有所帮助!


该文章在 2024/12/4 15:25:38 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved