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(); // 关闭二级窗体
}
}