在我的main方法中,我像往常一样启动主窗体:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());在主要的表单加载的事情,我有以下内容,这将要求用户登录和东西。
using (loginForm)
{
DialogResult r = loginForm.ShowDialog();
switch (r)
{
case DialogResult.OK:
break;
default:
Application.Exit();
return;
}
}我的问题是主窗体显示在背景中,我想让它,嗯……不。直到登录成功。我该怎么做呢?Application.Run()方法表示它会自动显示表单。是否有其他方法可以启动主窗体而不显示它?或者我必须在主窗体的构造函数中将visible设置为false,然后在登录完成后再设置回true,或者类似的设置?这样做的推荐方式是什么?登录表单的意图就像是一个组合的闪屏和登录。所以它首先加载并设置一些不同的东西,然后告诉用户登录。
发布于 2009-01-30 10:18:42
而不是:
Application.Run(new MainForm());尝试:
LoginDialog // the class that handles login UI
login = new LoginDialog ();
if (login.ShowDialog () == DialogResult.OK)
{
// check credentials
// if credentials OK
Application.Run(new MainForm());
}ShowDialog方法是一个阻塞调用,程序将暂停,直到对话框关闭以响应用户输入-通过按“确定”按钮或“取消”按钮。
发布于 2009-01-30 10:15:28
最简单的方法是使用Application.Run启动登录表单。当登录正常并设置好其他内容时,只需显示“main”表单即可。
Application.Run(new LoginForm());并在登录表单中单击OK按钮:
this.Visible = false;
this.ShowInTaskbar = false;
MainForm mainForm = new MainForm();
mainForm.Show();发布于 2009-01-30 11:46:34
我喜欢Skizz answer,但是如果这对你没有帮助,你也可以在MainForm的事件加载中这样做。只需将您的代码放在那里即可显示登录对话框。
https://stackoverflow.com/questions/495026
复制相似问题