C#学生撤回给你寄管理系统教程之登录界面设计

本文主要是介绍C#学生撤回给你寄管理系统教程之登录界面设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,首先,打开Visual Studio 2015版本,新建Windows窗体应用程序

结果:

2,点击右侧工具箱,如果右侧没有,则在视图里面找到工具箱点击,拖拽三个label,两个textbox,两个button控件

一些属性值大家可以自行设置,我在这只讲几个我认为不好找的一些属性值

如果要添加背景图片,则需要把label,button背景改为透明,如果不改则会像下图一样

改的方法:label  backcolor属性中web下点击Transparent,

效果如下:




下面开始写登录事件处理

双击登录按钮进入

  private void button1_Click(object sender, EventArgs e)
        {

        }

这个函数,

下面是我写的代码

 private void login_Click(object sender, EventArgs e){string account = AccountBox.Text;string password = PasswordBox.Text.ToString();if (student.Checked){Student student = new Student(account, password);loginCheck check = new loginCheck(student);check.checkStudent();//进行账号密码判断if (check.UserError){if (check.PasswordError){this.Hide();new studentForm().Show();}else{//errorprovider控件提示信息this.errorProvider1.SetError(this.PasswordBox, "密码错误");}}else{//errorprovider控件提示信息this.errorProvider1.SetError(this.AccountBox, "不存在用户名");}}else if (teacher.Checked){Teacher teacher = new Teacher(account, password);loginCheck check = new loginCheck(teacher);check.checkTeacher();//进行账号密码判断if (check.UserError){if (check.PasswordError){this.Hide();new teachFrom().Show();}else{//errorprovider控件提示信息this.errorProvider1.SetError(this.PasswordBox, "密码错误");}}else{//errorprovider控件提示信息this.errorProvider1.SetError(this.AccountBox, "不存在用户名");}}}

中间有用到其他类里面的函数

代码如下:

using System;
using System.Data.SqlClient;
using System.Security.Cryptography;
using System.Windows.Forms;namespace MyClass
{/** 学生登录账号密码类*/public class Student{private String _ID;private String _password;public Student(){}public Student(String ID, String password){this._ID = ID;this.Password = password;}public string ID{get{return _ID; }set { _ID = value; }}public string Password{get{  return _password; }set{ _password = value; }}}/** 教师登录账号密码类* */public class Teacher{private String _ID;private String _password;public Teacher(String ID, String password){this._ID = ID;this.Password = password;}public string ID{get { return _ID; }set { _ID = value; }}public string Password{get {return _password; }set { _password = value;}}}/** 登录判断类*/public class loginCheck{private Student student;private Teacher teacher;private Boolean userError = false;private Boolean passwordError = false;private SqlConnection conn;private string pass;public bool UserError{get{return userError;  }set { userError = value; }}public bool PasswordError{get { return passwordError; }set {  passwordError = value; }}//private public loginCheck(Student student){this.student = student;student.Password = new passwordEncryption().MD5(student.Password);}public loginCheck(Teacher teacher){this.teacher = teacher;teacher.Password = new passwordEncryption().MD5(teacher.Password);}private void SQL(){conn = new SqlConnection("server=.;uid=sa;pwd=sq0318..;database=数据库综合实验");pass = null;conn.Open();}private void SQL_1(string sqlStr){SqlCommand cmd = new SqlCommand(sqlStr, conn);SqlDataReader dr = cmd.ExecuteReader();while (dr.Read()){pass = dr["password"].ToString();UserError = true;}if (UserError == true){if (teacher.Password == pass){PasswordError = true;}}}public void checkStudent(){SQL();string sqlStr = "select * from student where Sno = '" + student.ID + "'";SQL_1(sqlStr);}public void checkTeacher(){SQL();string sqlStr = "select password from teacher where Tno = '" + teacher.ID + "'";SQL_1(sqlStr);}}/**  密码进行加密类 */public class passwordEncryption{/** 密码加密方法*/public String MD5(String s){char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6','7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };try{byte[] btInput = System.Text.Encoding.UTF8.GetBytes(s);// 获得MD5摘要算法的 MessageDigest 对象MD5 mdInst = System.Security.Cryptography.MD5.Create();// 使用指定的字节更新摘要mdInst.ComputeHash(btInput);// 获得密文byte[] md = mdInst.Hash;// 把密文转换成十六进制的字符串形式int j = md.Length;char[] str = new char[j * 2];int k = 0;for (int i = 0; i < j; i++){byte byte0 = md[i];str[k++] = hexDigits[(int)(((byte)byte0) >> 4) & 0xf];str[k++] = hexDigits[byte0 & 0xf];}return new string(str);}catch{// Console.Error.WriteLine(e.StackTrace);return null;}}}
}

以上截图是我写好之后又重新弄得一个工程进行截得图,下面是我自己的截图


这个登录界面源码在https://download.csdn.net/download/qq_42110740/10487238这可以下载

之后每实现一点就会发上去一点,

这篇关于C#学生撤回给你寄管理系统教程之登录界面设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/725866

相关文章

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

C#中Guid类使用小结

《C#中Guid类使用小结》本文主要介绍了C#中Guid类用于生成和操作128位的唯一标识符,用于数据库主键及分布式系统,支持通过NewGuid、Parse等方法生成,感兴趣的可以了解一下... 目录前言一、什么是 Guid二、生成 Guid1. 使用 Guid.NewGuid() 方法2. 从字符串创建

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字