2010-06-17 40 views
1

我正在考虑编写一个WPF程序,该程序在应用程序启动时需要登录名和密码。 我曾想过使用两个文本框作为登录表单的小表单。用户将不得不填写他的详细信息,然后应用程序的主要形式将被解锁。 你将如何解决这个问题?当主窗体“锁定”时显示小窗体

谢谢您的回答,daemonsvk

+0

你目前有什么代码?这听起来很像一个csc 102作业分配 – Woot4Moo 2010-06-17 17:30:58

+0

窗口“锁定”下面窗口的标准术语是“模式”,如在“打开模式对话框”中。相反是无模式的。 – Jacob 2010-06-17 17:33:55

回答

2

这是Window.ShowDialog()调用标准行为。其他窗口将被禁用。

0

我会首次启动您的登录页面并验证用户,如果他们的详细信息是正确的,请隐藏登录表单并向您显示其他表单。

if(user is authed) 
{ 
    this.Hide(); //Hide the login form 
    mainAppForm.Show(); //or Form.ShowDialog(); //Shows the main form 
} 
0

做到这一点的最简单的方式是首先显示(使用ShowDialog,哪些块即等待直到形式正在继续的下一行代码之前关闭)登录表单。如果登录成功,则处理登录表单,然后显示主表单;如果登录失败,则结束应用程序。

但是,如果您希望您的主表单在登录表单下方可见(一个不合理的要求),那么您需要先显示主表单,然后从方法显示登录表单(模态地)主要形式。在WinForms中,这需要一些破解,因为无法从主窗体的构造函数或其Load事件中显示登录窗体(因为当登录窗体出现时,主窗体将不可见)。

WPF现在可以处理这个更好。