这个问题纠结了两天,今天在一个朋友的帮助下,解决了,其实很简单,但是可能作为新手,接触WPF时间还是短,因此作为一个问题困扰了我。
父窗体部分代码
class="code_img_closed" src="/Upload/Images/2014080715/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('cbc42c55-9221-48cf-9e37-c53fa3fbfc8b',event)" src="/Upload/Images/2014080715/2B1B950FA3DF188F.gif" alt="" />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父窗体,这样是不可以的。