如何加载一个窗口2次后,彼此
本文关键字:2次 窗口 彼此 一个 何加载 加载 | 更新日期: 2023-09-27 17:49:50
我一直在寻找这个问题的解决方案,但我似乎找不到答案。
我有一个主窗口,我想从一个按钮加载"gameWindow"2次。我想在第一个窗口关闭后加载第二个窗口。
如果你能想象这个想法:
private void Action_Click(object sender, RoutedEventArgs e)
{
if (blueTeamMap != null && redTeamMap != null)
{
GameWindow matchBlueTeam = new GameWindow(playersBlueTeam, playersRedTeam, blueTeamMap);
matchBlueTeam.Show();
while (matchBlueTeam != null)
{
// wait for window to resign
}
GameWindow matchRedTeam = new GameWindow(playersBlueTeam, playersRedTeam, redTeamMap);
matchRedTeam.Show();
}
}
像这样编辑你的代码
//your code here.
//add event here
matchBlueTeam.FormClosed += FormName_FormClosed;
matchBlueTeam.Show();
添加事件处理程序:
private void FormName_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
{
//unregister first window from event
((GameWindow)sender).FormClosed -= FormName_FormClosed;
if (blueTeamMap != null && redTeamMap != null)
{
//pop second window
GameWindow matchRedTeam = new GameWindow(playersBlueTeam, playersRedTeam, redTeamMap);
matchRedTeam.Show();
}
}
假设matchBlueTeam
窗口关闭,GameWindow
有Closed
事件,如:
private void Action_Click(object sender, RoutedEventArgs e)
{
if (blueTeamMap != null && redTeamMap != null)
{
GameWindow matchBlueTeam = new GameWindow(playersBlueTeam, playersRedTeam, blueTeamMap);
matchBlueTeam.Closed += (s,e) => {
GameWindow matchRedTeam = new GameWindow(playersBlueTeam, playersRedTeam, redTeamMap);
matchRedTeam.Show();
};
matchBlueTeam.Show();
}
}
您可以在window方法上请求ShowDialog()。然后等待窗口关闭。
Window1 w1 = new Window1();
w1.ShowDialog();
Window2 w2 = new Window2();
w2.ShowDialog();
或带有事件:
//////Code
Window1 w1 = new Window1();
w1.Closed += v_Closed;
w1.Show();
}
void v_Closed(object sender, EventArgs e)
{
Window1 w1 = (Window1)sender;
w1.Closed -= v_Closed;
Window2 w2 = new Window2();
w2.Show();
}