此篇文章详细介绍了,从无到一个简单的WinForm的登陆界面的做成,包括页面的设计和数据库的连接,以及初学者碰到的问题。想要完整代码评论111私。下面直接上“才艺”。
1.首先我们创建一个WinForm的项目,按照截图一步一步,最后点击创建
2.创建好的新项目有三个部分,设计器,设计器代码,和Program.cs项目程序主入口
3.下面开始设计页面,视图--工具箱,进入需要的控件库。我们需要的button和InputText和Label。
直接点往右边拉就好了。这是最后设计好的界面。
4.鼠标点击对应的空间,右边的属性栏里面。有各种各样的属性可以编辑,像字体样式,以及文本。
密码加密的话,我们在密码的输入框的属性那块,找到UseSystemPasswordChar设置为True就好了
我们看到,我们运行起来后,我们的聚焦点在用户名,这是我们想要的。
这个设置方法是,把鼠标点击该InputText,点击视图--Tab键顺序,然后改写自己想要的顺序,然后保存,就好了。
5.我们设计好运行起来,发现界面在左上角,我们想调整到居中位置,我们只需要把属性的,StartPosition的属性换成CenterScreen就好了
6.下面开始编写代码,首先写重置的逻辑。我们只需要双击该按钮,然后就会自动生成该按钮的方法,可以编写了,重置我们只需要,点击的时候把用户名和密码清空就好了。
//重置
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = string.Empty;
textBox2.Text = string.Empty;
}
7.写确认按钮代码,我们要做到,连接数据库,然后把用户名和密码和数据库的做对比,如果存在且正确,则登录成功跳转到主界面,否则就失败。
我们的连接字符串
//数据库连接字符串
private string connectionString = "server=xxx.xx.xxx.xx,3306;user id = yonghuming; password=mima;database=MyDB"; --如果是默认端口3306可以不写。
//确认
private void button2_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("请输入用户名!");
return;
}
if (string.IsNullOrWhiteSpace(textBox2.Text))
{
MessageBox.Show("请输入密码!");
return;
}
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
try
{
Console.WriteLine(conn);
conn.Open();
string query = "select * from user_table where username = @username and password = @password";
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@username", textBox1.Text);
cmd.Parameters.AddWithValue("@password", textBox2.Text);
using (MySqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
DialogResult = DialogResult.OK;
MessageBox.Show("登录成功!");
}
else
{
MessageBox.Show("用户名或密码错误!");
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("登录过程中发生错误:" + ex.Message);
}
}
}
注意我是用的MySqlConnection,这是Mysql的连接的对象。如果是Sqlserver,要用SqlConnection对象,这个要注意。
8.我们注意到,我们登陆成功后,我们记录了DialogResult = DialogResult.OK;。所以我们在主程序Program.cs那边要拿这个变量去确认是否跳转到主页面。Program代码。代码逻辑是,如果登陆成功,就跳转到Main主页面,这个主界面是我自己做的一个静态界面
namespace WinFormsApp1
{
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
//Application.Run(new Login());
Login login = new Login();
if(login.ShowDialog() == DialogResult.OK)
{
Application.Run(new Main());
}
else
{
Application.Exit();
}
}
}
}
9.主界面什么也没有,只有一个登出,点击就会退出用户,让重新登录下面有代码。
10.登出代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinFormsApp1
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
//登出
private void button1_Click(object sender, EventArgs e)
{
this.Hide();//隐藏当前主体
Login login = new Login();
// 显示登录窗体,并等待用户操作完成
if (login.ShowDialog() == DialogResult.OK)
{
// 如果登录成功,可以选择重新显示主窗体或进行其他操作
this.Show();
}
else
{
// 如果登录取消或失败,可以选择关闭应用程序或进行其他操作
this.Close();
}
}
}
}
好了,到这基本就结束了。下面看看效果截图
祝大家学习进步,天天快乐。