C# 窗体(登录界面)
简介
在开发一个C# WinForm 应用程序时,登录界面作为很重要的一环,往往是APP的入口界面,这也是给人们留下“第一印象”的地方之一,因此为了让应用程序展现更好的用户体验,设计一个美观、实用、易用的登录界面显得尤为重要。
本文将讲解如何使用C# WinForm设计一个简单而实用的登录界面。
实现方法
- 设计登录界面
登录界面应该包括输入用户名、密码、记住密码、自动登录、登录和退出按钮等界面。WinFrom有很多常用的控件,常用的有文本框、复选框和按钮,首先在Visual Studio上创建WinFrom窗体项目,然后拖动控件到需求区域即可。
- 实现记住密码和自动登录功能
在登录界面中,有一个实用的功能即“记住密码和自动登录功能”,这是用户在下一次进入时可以免去输入用户名和密码的步骤。
//改变记住密码和自动登录按钮的选择状态
private void cbRemember_CheckedChanged(object sender, EventArgs e)
{
if (cbRemember.Checked == false)
{
cbAutoLogin.Checked = false;
}
}
private void cbAutoLogin_CheckedChanged(object sender, EventArgs e)
{
if (cbAutoLogin.Checked == true)
{
cbRemember.Checked = true;
}
}
// 保存密码
private void SaveConfig()
{
Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
config.AppSettings.Settings["UserName"].Value = this.txtUserName.Text;
config.AppSettings.Settings["Password"].Value = this.txtPassword.Text;
config.AppSettings.Settings["RememberPassword"].Value = this.cbRemember.Checked.ToString();
config.AppSettings.Settings["AutoLogin"].Value = this.cbAutoLogin.Checked.ToString();
config.Save(ConfigurationSaveMode.Modified);
}
// 读取密码
private void GetConfig()
{
this.txtUserName.Text = ConfigurationManager.AppSettings["UserName"];
this.txtPassword.Text = ConfigurationManager.AppSettings["Password"];
bool rememberPassword;
if (bool.TryParse(ConfigurationManager.AppSettings["RememberPassword"], out rememberPassword))
{
this.cbRemember.Checked = rememberPassword;
}
bool autoLogin;
if (bool.TryParse(ConfigurationManager.AppSettings["AutoLogin"], out autoLogin))
{
this.cbAutoLogin.Checked = autoLogin;
}
}
- 实现登录验证功能
在WinFrom应用程序开发中,登录验证是无法避免的一部分,我们需要先完成用户名和密码的验证,当用户输入的用户名和密码在数据库中有对应项时,登录成功,退出登录或者切换账户的时候,应该将密码或者Cookie清空,保证账户的安全性。
private void btnLogin_Click(object sender, EventArgs e)
{
string serverName = "localhost";
string dbName = "db_test";
string userName = "root";
string password = "123";
string strSql = string.Format("select * from userInfo where Username='{0}' and Password='{1}'", txtUserName.Text, txtPassword.Text);
SqlConnection sqlcon = new SqlConnection(string.Format("server={0};database= {1};uid={2};pwd={3}", serverName, dbName, userName, password));
try
{
sqlcon.Open();//打开
SqlCommand sqlcom = new SqlCommand(strSql, sqlcon);
SqlDataReader dr = sqlcom.ExecuteReader();
if (dr.Read())
{
SaveConfig();
this.DialogResult = DialogResult.OK;//窗体的DialogResult属性,如果是OK,返回DialogResult.OK,否则返回其他值
}
else
{
MessageBox.Show("用户名或密码错误", "登录失败");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
- 注销
完成“记住密码和自动登录功能”和“登录验证功能”之后,应该在主窗体添加一个用户控件,作为注销控制按钮,可以让用户注销登录。
private void btnLogout_Click(object sender, EventArgs e)
{
ConfigurationManager.AppSettings["UserName"] = "";
ConfigurationManager.AppSettings["Password"] = "";
ConfigurationManager.AppSettings["RememberPassword"] = "false";
ConfigurationManager.AppSettings["AutoLogin"] = "false";
this.DialogResult = DialogResult.Cancel;
}
结论
通过这篇C# WinForm登录界面开发的教程,你应该对WinFrom的生命周期和用户控件等内容有了更深刻的认识,同时也明白了设计实用的登录界面的重要性,为接下来的程序设计学习打下了基础。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 窗体(登录界面) - Python技术站