在WPF中一次只能打开一个窗口?

时间:2012-03-22 05:56:52

标签: wpf vb.net

我正在vb.net中开发一个WPF项目并且其中有多个窗口。当用户选择菜单项时,将打开一个新窗口,问题是当用户单击其他菜单项时,当前窗口应自行关闭。 我如何实现它? 谢谢!

2 个答案:

答案 0 :(得分:1)

我认为你的意思是基于你的评论:

Class MainWindow 

  Public Win3 As Window3 = New Window3()

  Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
    Win3.Show()
    Me.Close()
  End Sub

End Class

答案 1 :(得分:0)

有两种方法可以做到这一点:

如果菜单项共享相同的表单,则在表单中创建一个子程序,您调用它而不是新程序,检查它是否已经显示/创建,如果没有打开(如您所见)。如果使用新信息打开重新加载。

否则,在打开新表单之前,请查看打开的表单(如下所示,来自C#中的this网站):

FormCollection fc = Application.OpenForms;

foreach (Form frm in fc) {
         //iterate through
}

对于每个表单检查它的名称是否等于其中一个菜单项,如果它是关闭的(如果需要,在保存后)。然后在退出for循环后,打开新的菜单项。