使用用户自定义控件登录屏幕
问题描述:
我遵循了一些建议,我今天到这里,现在需要更多的帮助:使用用户自定义控件登录屏幕
我有一个用户控件与登录逻辑。 在MainForm中我使用这个:
private void Form1_Load(object sender, EventArgs e)
{
LoginScreen login = new MainMenu();
login.Parent = this;
login.Dock = DockStyle.Fill;
login.Show();
}
但我想它不是模态的,因此不停止原窗体应用程序。当然,我需要主窗体不会继续,直到登录窗体关闭(并且登录成功)。
会使用正确的事件吗?让登录对象引发登录成功的事件并让MainForm处理它 - 运行应用程序?
编辑:这是用户控件,没有ShowDialog方法可用。
答
只需使用ShowDialog()
而不是Show()
。
此外,ShowDialog()
返回的DialogResult,这样你就可以检查用户是否不按OK
和关闭形式在这种情况下:
if(form.ShowDialog() != DialogResult.OK)
{
this.Close();
}else
{
//if login it's ok continue with main form loading...
}
编辑:
鉴于这是一个用户控件:
- 创建一个新的表单类并添加用户控件(例如使用设计器)
- 实例化,并调用你的
FormLoad
代码ShowDialog()
(代码类似于您发布的一个,但你需要实例化的登录表单,而不是你的用户控件)
答
相反的login.Show();
您可以使用login.ShowDialog(this);
,使其成为窗体的模态弹出窗口。
答
如果它不是从Form
类(这很奇怪)派生的,只需创建一个窗体并将其控制在窗体上,然后调用ShowDialog
窗体的方法。不过,您必须以某种方式将表单关闭到登录屏幕上的控件。如果它引发了一些事件,这应该不成问题。
该用户控件没有ShowDialog方法:( – Mocco 2011-03-17 16:08:14
哦,这是一个用户控件...让我编辑;) – digEmAll 2011-03-17 16:11:04
检查我的编辑;) – digEmAll 2011-03-17 16:23:07