C#基础:Winform桌面开发中窗体之间的数据传递

1.主窗体

cs 复制代码
using System;
using System.Windows.Forms;

public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
    }

    // 打开二级窗体
    private void btnOpenSecondaryForm_Click(object sender, EventArgs e)
    {
        // 创建二级窗体并订阅事件
        SecondaryForm form = new SecondaryForm();
        form.DataPassed += ReceiveData; // 左边这个事件需要在二级窗体定义,右边这个是主窗体方法
        form.ShowDialog();
    }

    // 处理从二级窗体传递过来的数据
    private void ReceiveData(object sender, string data)
    {
        // 显示数据
        MessageBox.Show("从二级窗体传回的数据: " + data);
    }
}

2.二级窗体

cs 复制代码
using System;
using System.Windows.Forms;

public partial class SecondaryForm : Form
{
    // 定义一个事件用于将数据传递给主窗体
    public event EventHandler<string> DataPassed;

    public SecondaryForm()
    {
        InitializeComponent();
    }

    // 当点击确定按钮时触发
    private void btnOk_Click(object sender, EventArgs e)
    {
        string inputData = txtInput.Text; // 获取用户输入
        DataPassed?.Invoke(this, inputData);// 触发事件
        this.Close(); // 关闭二级窗体
    }
}
相关推荐
在繁华处1 小时前
Java从零到熟练(九):并发编程基础
java·开发语言
木头程序员1 小时前
SSM框架学习笔记
java·开发语言·mysql·spring·maven
一起逃去看海吧1 小时前
dify-03
java·linux·开发语言
xiaoshuaishuai82 小时前
C# AvaloniaUI 资源找不到报错
java·服务器·前端·windows·c#
Xin_ye100862 小时前
C# 零基础到精通教程 - 第十八章:部署与发布——让应用上线
开发语言·c#
思麟呀3 小时前
C++11并发编程:call_once一次性执行+atomic原子类型+CAS无锁编程+自旋锁
linux·开发语言·jvm·c++·windows
码不停蹄的玄黓3 小时前
Java 生产者-消费者模型详解
java·开发语言·python
爱讲故事的3 小时前
操作系统第一讲复习:为什么学习操作系统,以及操作系统到底在做什么?
linux·开发语言·windows·学习·ubuntu·c#
笨蛋不要掉眼泪3 小时前
Java并发编程:Executors框架类深度解析
java·开发语言·并发
_童年的回忆_4 小时前
【php】在linux下PHP安装amqp扩展
linux·开发语言·php