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(); // 关闭二级窗体
    }
}
相关推荐
python猿几秒前
打卡Python王者归来--第30天
开发语言·python
qq_334903151 分钟前
嵌入式C++驱动开发
开发语言·c++·算法
阿贵---12 分钟前
C++代码规范化工具
开发语言·c++·算法
暮冬-  Gentle°20 分钟前
自定义内存检测工具
开发语言·c++·算法
一直都在57220 分钟前
Java死锁
java·开发语言
娇娇yyyyyy23 分钟前
QT编程(15): Qt 按键事件和定时器事件
开发语言·qt
2501_9454248038 分钟前
C++编译期矩阵运算
开发语言·c++·算法
yy我不解释42 分钟前
关于comfyui的mmaudio音频生成插件时时间不一致问题(三)
开发语言·python·ai作画·音视频·comfyui
2301_8154829344 分钟前
C++中的类型标签分发
开发语言·c++·算法
SuperEugene44 分钟前
Vue3 模板语法规范实战:v-if/v-for 不混用 + 表达式精简,避坑指南|Vue 组件与模板规范篇
开发语言·前端·javascript·vue.js·前端框架