在winform 界面编程中,我们有时候要在主界面打开之前先显示登录界面,当登录界面用户信息校验正确后才打开主界面,而这时登陆界面也完成使命该功成身退了。
目前有两种方法可实现:
方法1. 隐藏登录界面
Program.cs 中代码如下:
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Login());
}
Login.cs 中代码如下:
/// <summary>
/// login
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLogin_Click( 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( sender, EventArgs e)
{
this.Dispose();
this.Close();
}
方法2. 登录界面以 dialog形式打开,返回登录结果
Program.cs 中代码如下:
/// <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 中代码如下:
/// <summary>
/// login
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLogin_Click( 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( sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Dispose();
this.Close();
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
继续阅读与本文标签相同的文章
下一篇 :
2019云栖大会精品资料下载
-
物联网:关于Nand flash读写范围的问题
2026-05-16栏目: 教程
-
深度 | 带领国产数据库走向世界,POLARDB底层逻辑是什么? | 10月30号栖夜读
2026-05-16栏目: 教程
-
详细解读 Spring AOP 面向切面编程(二)
2026-05-16栏目: 教程
-
带你读《区块链真相》之三:区块链对金融行业和世界经济的影响
2026-05-16栏目: 教程
-
混拨vps与单城市拨号vps有什么区别?
2026-05-16栏目: 教程
