ShowDialog在某些事件中退出

本文关键字:退出 事件 ShowDialog | 更新日期: 2023-09-27 18:27:33

我有一个主表单,但一旦我显示了主表单,我就会使用ShowDialog弹出我的登录表单,并隐藏主表单。一旦用户登录,我只需关闭登录表单,一切都很好,主表单就会出现。

然而。。当我退出登录表单时,它仍然显示主表单,因为很明显,这是一个对话框。如何防止用户在退出登录表单时访问主表单?

谢谢。

ShowDialog在某些事件中退出

我看到这样的选项:

  • 不允许退出登录对话框(除非同时关闭整个应用程序)

  • 如果用户存在,登录对话框将禁用整个主窗体(在其关键控件和整个窗体上设置Enabled=false)。可能除了主菜单之外,您可以退出应用程序或再次调用登录对话框

使用ShowDialog()的结果来确定用户是否已登录。如果没有,请关闭应用程序,否则继续应用程序。

另一个不太好的解决方案是:在登录表单中设置一个Main form属性,并在打开登录表单时进行设置。在登录表单的关闭事件中,您也可以关闭主表单。

//the property in the login-form
public YourMainForm MainForm{ get; set; }
//setting the property from the main-form
var login = new LoginForm();
login.MainForm= this;
//closing of the mainform
MainForm.Close();

您不需要隐藏表单。只需将控件添加到面板中并使其不可见即可。

panel1.visible=false;