在winform 界面编程中,我们有时候要在主界面打开之前先显示登录界面,当登录界面用户信息校验正确后才打开主界面,而这时登陆界面也完成使命该功成身退了。
目前有两种方法可实现:
方法1. 隐藏登录界面
Program.cs 中代码如下:
1
2
3
4
5
6
7
8
9
10
|
/// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault( false ); Application.Run( new Login()); } |
Login.cs 中代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
/// <summary> /// login /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnLogin_Click( object sender, EventArgs e) { if (txtPassword.Text == "12345678" ) { UI ui = new UI(); this .Visible = false ; ui.ShowDialog(); //此处不可用Show() this .Dispose(); this .Close(); } else { MessageBox.Show( "Password is incorrect " , "Prompt message" ,MessageBoxButtons.OK,MessageBoxIcon.Error); } } /// <summary> /// exit /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnExit_Click( object sender, EventArgs e) { this .Dispose(); this .Close(); } |
方法2. 登录界面以 dialog形式打开,返回登录结果
Program.cs 中代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault( false ); Login login = new Login(); login.ShowDialog(); if (login.DialogResult == DialogResult.OK) { login.Dispose(); Application.Run( new UI()); } else if (login.DialogResult == DialogResult.Cancel) { login.Dispose(); return ; } } |
Login.cs 中代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/// <summary> /// login /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnLogin_Click( object sender, EventArgs e) { if (txtPassword.Text == "12345678" ) { this .DialogResult = DialogResult.OK; this .Dispose(); this .Close(); } else { MessageBox.Show( "Password is incorrect " , "Prompt message" ,MessageBoxButtons.OK,MessageBoxIcon.Error); } } /// <summary> /// exit /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnExit_Click( object sender, EventArgs e) { this .DialogResult = DialogResult.Cancel; this .Dispose(); this .Close(); } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/Waming-zhen/p/6560886.html