我使用VB.NET 2005开发了一个基于Windows的应用程序。它工作得很好。现在,客户端想要添加一个名为“Logout”的选项。选择此选项后,所有打开的窗体窗体都应关闭,MDI窗体需要打开并使用登录表单。
任何人都可以建议如何解决这个问题。
答案 0 :(得分:2)
您是否手动跟踪应用程序打开的表单?如果是这样,关闭自上次登录以来打开的所有表单都很简单。
否则,我建议使用.NET提供的Application.OpenForms
属性循环遍历应用程序中当前打开的所有表单。在循环中,您希望根据MDI表单检查每个表单(因为您希望该表单保持打开状态,无论如何),如果它不是MDI表单,请将其关闭:
For Each frm As Form In Application.OpenForms
If frm IsNot MyMDIForm Then
frm.Close()
frm.Dispose()
End If
Next frm
关闭所有打开的表单(MDI表单除外)之后,您需要放置注销用户所需的任何其他代码(关闭数据库连接,说再见等)。
最后,您希望以显示的登录表单结束,并且因为您可能不希望用户能够与MDI表单上的任何控件进行交互,直到他们登录为止,您需要显示登录表单作为模式对话框。模态对话框基本上取代了对应用程序的控制,因此在模式对话框关闭之前,用户无法单击任何其他表单。要将表单显示为模式对话框,请使用要显示的表单的ShowDialog方法,将其父/所有者表单作为参数传递:
LoginForm.ShowDialog(MyMDIForm)