登陆界面

前言

信息科小助手是自己第一次用心写的小程序,水平很有限,程序写的很一般,现在写下来做个记录,以备不时之需。

界面

登陆界面截图

  • 用户名拼音首字母
  • 登陆的用户名
  • 请输入密码
    上面这三项用label控件,不用存储数据,制作显示之用。

控件对应的名称

标签名 文本输入框的对应变量名
用户名拼音首字母 czybh_textbox
登陆的用户名 xm_textbox
请输入密码 xm_textbox

操作说明

我在数据库里建了一个助记码的表,里面存储的是用户的名字的首字母的简写。

为了登陆方便,用户直接输入自己名称的首字母,然后敲回车,在登陆的用户名里显示出自己的名字,再在下面输入密码,点击登陆

  • 定义公共变量
public static string M_name;//登陆用户名
public static string M_pasw;//登陆密码
  • 敲回车显示姓名事件

    private void czybh_textbox_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == 0x20) e.KeyChar = (char)0;  //禁止空格键  
        if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return;   //处理负数,不允许输入负数和空格键  
    
    if (e.KeyChar == 13)
    {
        try{
        string login_up = "select * from admin_software where zjm like'%" + czybh_textbox.Text.Trim() + "%'";
        SqlConnection myconn = new SqlConnection(login_ConStr);
        SqlCommand cmdd = new SqlCommand(login_up, myconn);
        myconn.Open();
        SqlDataReader reader = cmdd.ExecuteReader();
        reader.Read();
        czybh_textbox.Text = reader["zjm"].ToString();//读取助记码并赋值
        xm_textbox.Text = reader["xm"].ToString();//读取密码并赋值
        myconn.Close();
        mm_textbox.Focus();
        }
        catch{
        MessageBox.Show("查无此人,请重新输入");
        czybh_textbox.Text = "";
        xm_textbox.Text = "";
                }
    }
    }

到这一步,姓名和密码都已经被赋值并且在TextBox上显示出来了。

  • 点击登陆时的验证事件。
private void czy_dl_Click(object sender, EventArgs e)
{
    try{
        if (this.czybh_textbox.Text.ToString() == "")
        { 
        MessageBox.Show("请填写操作员编号!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        czybh_textbox.Focus();//焦点回到输入助记码
}
        else if (this.mm_textbox.Text.ToString() == "")
        {
        MessageBox.Show("请填密码!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }                
        else
        {
        SqlConnection login_del_myconn = new SqlConnection(login_ConStr);
        try{
        string pd_login = "select * from admin_software where zjm='" + czybh_textbox.Text.Trim() + "' and xm='" + xm_textbox.Text.Trim() + "'";
        SqlCommand cmd = new SqlCommand(pd_login, login_del_myconn);
        login_del_myconn.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        if (reader.Read())
        {
        if (reader["mm"].ToString().Trim() == this.mm_textbox.Text.Trim())
        {
        zb_class.czy_code = reader["zjm"].ToString().Trim();//zb_class是一个单独的类,里面有一个czy_code的静态变量用于存储读取到的助记码
        yb_db.czyxm = reader["xm"].ToString().Trim();//与上面同理
        yb_db.czymm = reader["mm"].ToString().Trim();//同理
        M_name = xm_textbox.Text.ToString();//把读取到的姓名存在M_name里用于后面调用使用
        Logging.WriteKeylog("当前登录用户为:"+yb_db.czyxm);//Logging是个日志的方法,后面再详细说明
        this.Hide();
        new Main().ShowDialog();//对比密码成功,进入主界面Main
        }
        else
        {
        MessageBox.Show("密码错误!请重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        mm_textbox.Focus();
        mm_textbox.Text = "";
        }
    }
    else
    {
        MessageBox.Show("输入的用户名代码不存在!请重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        czybh_textbox.Focus();
    }
}
    catch (Exception ex){
        MessageBox.Show(ex.Message);
        }
    finally{
        login_del_myconn.Close();
            }
    }
}
    catch{

}

}

小结

登陆主要是textboxlabelbutton控件的结合操作,相对简单,用到的方法不多,事件也只有按钮的单击事件敲回车的KeyPress事件

posted @ 2016-04-24 22:30  lovedanr  阅读(323)  评论(0编辑  收藏  举报