WPF 子窗体关闭时显示父窗体

时间:2021-05-09 00:31:31

这个问题纠结了两天,今天在一个朋友的帮助下,解决了,其实很简单,但是可能作为新手,接触WPF时间还是短,因此作为一个问题困扰了我。

父窗体部分代码

        private void EditInformation_Click(object sender, RoutedEventArgs e)
{
this.Visibility = Visibility.Hidden;//父窗体隐藏
Page.ALLEdit AE = new Page.ALLEdit();
AE.Owner = this;//指定子窗体的父窗体是自己
AE.ShowDialog(); //子窗体显示
}

父窗体隐藏,子窗体显示

子窗体部分代码

        protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
this.Owner.Visibility = Visibility.Visible;//显示父窗体
base.OnClosing(e);
}

重写子窗体的closing事件

重点就是在于父窗体里的AE.Owner = this;

这句话指定了父窗体是谁,如果没有这句话,在运行子窗体关闭时,会弹出“未将对象引用到实例”。

记住,千万不要什么一个new父窗体,这样是不可以的。