场景描述
父窗体:UserLogin
子窗体:UserCard
当子窗体打开时,父窗体隐藏;当子窗体关闭时,父窗体也一起关闭。
第一:子窗体重写构造函数并传递父窗体
重点:重写的构造函数中一定要添加代码: InitializeComponent();
/// <summary> /// UserCard.xaml 的交互逻辑 /// </summary> public partial class UserCard : Window { public UserCard() { InitializeComponent(); } UserLogin _userLogin; //父窗体 public UserCard(UserLogin userLogin) { this._userLogin = userLogin; InitializeComponent();
} }
第二:父窗体中打开子窗体,父窗体隐藏
//打开子窗体 UserCard userCard = new UserCard(this); userCard.Show(); //隐藏自己(父窗体) this.Visibility = Visibility.Hidden;
第三:子窗体中添加关闭父窗体的代码
private void Window_Closed(object sender, EventArgs e) { //关闭父窗体 this._userLogin.Close(); }
到此,也解决相关错误:无法将文件“*.exe'复制到'*.exe',文件“*.exe”正由另一进程使用。
因为当子窗体关闭时,若父窗体隐藏了而未关闭,再次打开时便会报相关错误。
本文引自:https://www.cnblogs.com/chz1992/p/4082386.html