MainWindow 主窗体
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
`
public partial class MainWindow : Window
{
private Form3 f3; // 保存 Form3 的引用
public MainWindow()
{
InitializeComponent();
// 创建 Form3 实例并订阅 ChangeEvent 事件
f3 = new Form3();
f3.ChangeEvent += ShowMessagebox;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Form2 f2 = new Form2(f3);
f2.ShowDialog();
}
private void ShowMessagebox()
{
Read_Click(null, null);
}
private void Read_Click(object? sender, RoutedEventArgs? e)
{
MessageBox.Show("读取所有配置成功!");
}
}
`
`Form2
public partial class Form2 : Window
{
private Form3 f3; // 保存 Form3 的引用
public Form2(Form3 form3)
{
InitializeComponent();
f3 = form3;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
f3.ShowDialog();
}
}`
`Form3
public partial class Form3 : Window
{
public delegate void ChangeHandler(); //1. 首先在子窗口定义委托
public event ChangeHandler ChangeEvent;//2. 此事件定义在Class内
public Form3()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("登录成功!");
if (ChangeEvent != null) ChangeEvent();
else MessageBox.Show("Null");
}
}
`