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(); // 关闭二级窗体
    }
}
相关推荐
JQLvopkk19 小时前
C# 实践AI :Visual Studio + VSCode 组合方案
人工智能·c#·visual studio
Max_uuc19 小时前
【C++ 硬核】打破嵌入式 STL 禁忌:利用 std::pmr 在“栈”上运行 std::vector
开发语言·jvm·c++
故事不长丨19 小时前
C#线程同步:lock、Monitor、Mutex原理+用法+实战全解析
开发语言·算法·c#
牵牛老人19 小时前
【Qt 开发后台服务避坑指南:从库存管理系统开发出现的问题来看后台开发常见问题与解决方案】
开发语言·qt·系统架构
kingwebo'sZone19 小时前
C#使用Aspose.Words把 word转成图片
前端·c#·word
froginwe1119 小时前
Python3与MySQL的连接:使用mysql-connector
开发语言
灵感菇_19 小时前
Java HashMap全面解析
java·开发语言
杜子不疼.19 小时前
PyPTO:面向NPU的高效并行张量编程范式
开发语言
lly20240619 小时前
C# 结构体(Struct)
开发语言
YMWM_19 小时前
python3继承使用
开发语言·python