欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于C#的windows窗体的报修系统开发——登录注册欢迎界面

程序员文章站 2022-07-16 19:17:41
...

功能说明

登录一个系统的时候,必然需要有登录界面,有时候还需要一个欢迎界面来加载系统资源。这里实现了一个登录注册欢迎的功能,会先后出现三个基本界面:欢迎界面、登录界面、注册或主界面。

一、先设计四个窗体

分别命名为WelcomeFrom、LoginFrom、RegistFrom、MainForm(规范命名),实现代码将会上传到GitHub。
基于C#的windows窗体的报修系统开发——登录注册欢迎界面
| centered 文本居中 | right-aligned 文本居右
基于C#的windows窗体的报修系统开发——登录注册欢迎界面
基于C#的windows窗体的报修系统开发——登录注册欢迎界面
基于C#的windows窗体的报修系统开发——登录注册欢迎界面

二、逻辑程序代码实现

1、首先设置一下程序入口(显示欢迎界面)
在Program.cs里面设置,新建项目会自动生成Program.cs

namespace RepairSystem
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
        	// 隐藏边框和按钮
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            // 首先显示欢迎界面
            Application.Run(new WelcomeForm());

        }
    }
}

2、设计欢迎界面如何显示(可设置应用程序加载资源)

// 这部分可用线程加载资源
namespace RepairSystem
{
    public partial class WelcomeForm : Form
    {
        LoginForm loginForm = new LoginForm();
        public WelcomeForm()
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;
        }

        private void WelcomeForm_Load(object sender, EventArgs e)
        {
        	// 设置定时器,控制页面时间
            this.timer1.Start();
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {

        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (this.Opacity < 1)
            {
                // 单位时间添加的透明度,即欢迎界面停留时间
                this.Opacity += 0.02;
            }
            else
            {
                this.timer1.Stop();
                this.Hide();
                // 跳转到登录界面
                loginForm.Show();
            }
        }
    }
}

3、登录窗体代码设计
这部分内容涉及数据库连接——请看数据库设计

namespace RepairSystem
{
    public partial class LoginForm : Form
    {
        public LoginForm()
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;
        }

        private void LoginForm_Load(object sender, EventArgs e)
        {
            // 调用下拉列表函数
            Role_ComboBox();
        }
        
        /// <summary>
        /// 登录按钮事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonLogin_Click(object sender, EventArgs e)
        {
            
            try
            {
                // 1. 验证输入数据是否合法
                // 获取文本框的值
                string name = this.userName.Text.Trim();
                string pwd = this.passWord.Text.Trim();
                string role = this.Roles.Text.Trim();

                // 验证输入的值
                if (name.Equals(""))
                {
                    MessageBox.Show("用户名不能为空!","提示");
                    // 获取焦点
                    userName.Focus();
                    return;
                }else if (pwd.Equals(""))
                {
                    MessageBox.Show("密码不能为空", "提示");
                    // 获取焦点
                    passWord.Focus();
                    return;
                }
                else if (Roles.Equals(""))
                {
                    MessageBox.Show("身份不能为空", "提示");
                    // 获取焦点
                    Roles.Focus();

                    return;
                }
                // 数据库查询用户信息
                string sqlStr = "select userName, userPwd, roles from user_info where userName = '"+name+"'";
                DataSet ds = DBconn.getData(sqlStr);
                // 一个大坑,数据库取出来的数据的字符串中有空字符,需要使用trim()去掉
                
                // string roles = ds.Tables[0].Rows[0][2].ToString().Trim();
                int count = ds.Tables[0].Rows.Count;
                if (count==0)
                {
                    MessageBox.Show("用户名不存在,请重新输入", "提示");
                    // 文本框置空
                    userName.Text = "";
                    passWord.Text = "";
                    Roles.Text = "";
                    userName.Focus();
                }else if(ds.Tables[0].Rows[0][1].ToString().Trim() == pwd)
                {

                    string roles = ds.Tables[0].Rows[0][2].ToString().Trim();
                    // 验证身份
                    if (roles.Equals("后勤老师")&&roles.Equals(role))
                    {
                        
                        MessageBox.Show("恭喜您登录成功!", "提示");
                        // 验证通过,页面跳转
                        SuperAdminForm superAdminForm = new SuperAdminForm();
                        this.Hide();
                        superAdminForm.Show();

                    }
                    else if (roles.Equals("维修工程师") && roles.Equals(role))
                    {
                        MessageBox.Show("恭喜您登录成功!", "提示");
                        // 验证通过,页面跳转
                        AdminForm adminForm = new AdminForm();
                        this.Hide();
                        adminForm.Show();
                    }
                    else if (roles.Equals("学生") && roles.Equals(role))
                    {
                        
                        // 验证通过,页面跳转
                        MessageBox.Show("恭喜您登录成功!", "提示");

                        MainForm mainForm = new MainForm();
                        mainForm.LabUser.Text = name;
                        this.Hide();
                        mainForm.Show();
                    }
                    else
                    {
                        MessageBox.Show("请正确选择您的身份!");
                        Roles.Text = "";
                        userName.Focus();
                    }
                }
                else
                {
                    MessageBox.Show("密码错误!请重新输入!");
                    userName.Text = "";
                    passWord.Text = "";
                    Roles.Text = "";
                    userName.Focus();
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show("登录异常:" + ex.Message);
                userName.Text = "";
                passWord.Text = "";
                Roles.Text = "";
                userName.Focus();
            }
            finally
            {
                // 最后关闭数据库
                DBconn.conn.Close();
            }
        }

        // 角色下拉列表设置
        public void Role_ComboBox()
        {
            Roles.Items.Add("学生");
            Roles.Items.Add("维修工程师");
            Roles.Items.Add("后勤老师");
            this.Roles.SelectedIndex = 0;
        }

        // 测试-捕获选定列表中的内容
        private void Roles_SelectedIndexChanged(object sender, EventArgs e)
        {
            /*switch (Roles.SelectedItem.ToString())
            {
                case "学生": MessageBox.Show("学生");break;
                case "维修工程师": MessageBox.Show("维修工程师"); break;
                case "后勤老师": MessageBox.Show("后勤老师"); break;
            }*/

        }

        private void ButtonRegist_Click(object sender, EventArgs e)
        {
            RegistForm registForm = new RegistForm();
            registForm.Show();
        }

        private void buttonCancel_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("确认退出?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
            {
                this.Close();
            }
        }

        private void passWord_TextChanged(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                buttonLogin_Click(sender, e);
            }
        }

        private void LoginForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.Exit();
        }

    }
}

4、注册页面逻辑代码

namespace RepairSystem
{
    public partial class RegistForm : Form
    {
        public RegistForm()
        {
            InitializeComponent();
            // 加载下拉列表
            Role_ComboBox();
        }
        // 清空输入
        void ClearAll()
        {
            RegistName.Text = "";
            PassWord.Text = "";
        }
        // 注册下拉列表方法
        public void Role_ComboBox()
        {
            RolesBox.Items.Add("学生");
            RolesBox.Items.Add("维修工程师");
            this.RolesBox.SelectedIndex = 0;
        }

        // 判断注册用户是否已经存在
        bool UserName(string userName)
        {
            string sqlStr = "select userName from user_info where userName='" + RegistName.Text.Trim() + "'";
            DataSet ds =  DBconn.getData(sqlStr);
            if (ds.Tables[0].Rows.Count == 0)
            {
                return false;
            }
            return true;
        }
        private void ButReject_Click(object sender, EventArgs e)
        {
            try
            {
                if (RegistName.Text.Trim().Equals(""))
                {
                    MessageBox.Show("用户名不能为空!", "提示");
                    RegistName.Focus();
                }else if (PassWord.Text.Trim().Equals(""))
                {
                    MessageBox.Show("密码不能为空!", "提示");
                    PassWord.Focus();
                }else if (UserName(RegistName.Text.Trim()))
                {
                    MessageBox.Show("用户名已经存在!", "提示");
                    ClearAll();
                }
                else
                {
                    
                    string sqlStr = "insert user_info (userName, userPwd, roles) values('" + RegistName.Text.Trim() + "','" + PassWord.Text.Trim() + "','" + RolesBox.Text.Trim() + "')";
                    if (DBconn.PDData(sqlStr))
                    {
                        MessageBox.Show("用户" + RegistName.Text.Trim() + "注册成功!");
                    }
                    this.Close();
                }
            }catch(Exception ex)            {
                DBconn.conn.Close();
                MessageBox.Show(ex.Message);
                ClearAll();
            }
        }

        // 取消注册
        private void Cancel_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("确认取消注册?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
            {
                this.Close();
            }
        }

        private void PassWord_TextChanged(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                ButReject_Click(sender, e);

            }
        }
    }
}

相关标签: C#