我是WPF的新手,我正在尝试建立一个数据库系统。我目前拥有的是Login
窗口。当您输入用户名和密码时,您应该转到另一个窗口StudentInfoSystem
。我使用的代码非常基本和常见。
var info = new StudentInfoSystem.MainWindow();
info.Show();
this.Close();
那么,这样做,就是在你按下登录按钮后,你会转移到StudentInfoSystem
并关闭登录窗口。我对Show()
的问题是它打开一个窗口并立即返回,对吧?它不会等待新窗口关闭。所以,我的问题是如何打开一个新窗口并使用它?当我说工作时,我的意思是在我的文本框中显示信息(在新打开的窗口中),具体取决于用户的角色等等。
答案 0 :(得分:1)
尝试window.Activate()
关注新窗口和/或[any element].Focus()
以关注窗口中的任何元素。
答案 1 :(得分:1)
我猜测上面的代码位于登录窗口的按钮单击处理程序中,这将使登录窗口成为StudentInfoSystem窗口的父级。
由于WPF将在关闭父窗口时关闭父窗口和任何子窗口,因此在调用
this.Close();
一个选项可能是调用
this.Hide();
但是没有看到你的应用程序的其余部分是如何设置的,不是100%确定这是最好的方法。
或许可以看到这些问题:
答案 2 :(得分:0)
据我了解,这应该做你想做的事:
info.ShowDialog();
您还可以查看ShutdownMode
属性。我宁愿说,登录窗口是你想要在登录后关闭,但做你想要的:)。使用ShutdownMode
属性:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
this.ShutdownMode = System.Windows.ShutdownMode.OnLastWindowClose;
}
}