资料介绍
完成了方法的编写,就可以开始实现各个按钮的事件了,即当用户激发某些事情时,系统将产生相应的回应,比如,在用户输入时,通过文本框的TextChanged事件来完成显示用户已经输入字符数的提示。先在设计器中选中txtID文本输入框控件,然后在属性中单击事件按钮 ,然后找到TextChanged事件,双击添加事件,其代码如下所示。
private void txtID_TextChanged(object sender, EventArgs e)
//这个事件会在txtID文本输入框的内容被改变时执行,目的是为了显示当前已经
//输入的字符个数
{
lblInfo.Text = “You Have been Input ” + txtID.Text.Length + “ Strings”;
if (txtID.Text.Length 》 18)
{
lblInfo.Text = “To much Numbers!!”;
}
}
然后是Clean按钮的单击事件,当单击这个按钮后,需要清空txtID输入框中的内容以供用户输入,另外,还需要清空的是用户对性别选择的两个单选按钮,它的代码如下所示。
private void btnClean_Click(object sender, EventArgs e)
//这是“Clean”按钮的单击事件,当这个按钮被单击操作时,便会执行这些个操
//作,包括:将txtID文本输入框内容清空,并消息提示框的文本内容改为“Clea red”,
//并将性别选择框中的选择取消
{
txtID.Text = “”;
lblInfo.Text = “Cleared.”;
rbMan.Checked = false;
rbWoman.Checked = false;
}
最后就是控制整个系统流程的Check按钮了,当用户单击这个按钮后,系统就需要使用它的流程来进行身份证号码的合法性判断,它会调用各个已经写好的方法,相对来讲,它的判断结构更加复杂,下面是它的实现代码。
private void btnCheck_Click(object sender, EventArgs e)
//这是“Check”按钮的单击事件,当这个按钮被单击操作时,便会执行这些个操
//作,它的主要作用是进行整个验证
{
string strID = txtID.Text;
//用来存储用户输入的需要验证的身份证号
byte byteIsNumorX = 0;
//一个标志,用于记录用户输入的字符串是否含有非法字符,如果含有则置为0,
//否则置为1
byte byteInputSex = 0;
//对用户所进行的性别选择进行记载,当用户没有选择性别时,将其置为0,如果
//选择为男性,则置为1,如果选择为女性,则置为2
if (txtID.Text.Length 》= 1)
{
if (rbMan.Checked)
//如果用户选择了身份证编码的对象为男性,则置intInputSex为1
{
byteInputSex = 1;
}
if (rbWoman.Checked)
//如果用户选择了身份证编码的对象为女性,则置intInputSex为0
{
byteInputSex = 2;
}
for (int i = 0; i 《= txtID.Text.Length - 1; i++)
//该循环的主要目的是为了验证用户输入的需要验证的字符身份证号码中
//是否包含了非法字符
{
string strIDEachBit = txtID.Text.Substring(i,1);
//每次从用户输入的身份证号码中取出一个字符进行合法性验证
if ((IdChk.ischarlegal(strIDEachBit) == 1) || (i == 17 && IdChk. ischarlegal(strIDEachBit) == 2))
//进行字符合法性判断,除了第18位上的字符,其他字符都不能为非数字
{
byteIsNumorX = 1;
//字符合法,由标志位置1
}
else
//输入的需要验证的身份证号码中含有非法字符或者X出现在了不对
//的位置,提示错误,并告诉用户错误的原因
{
lblInfo.Text = “The X isnot in the Right Place,or other letters in the ID”;
IdChk.Msg(“The ID is illegal!”, 1);
goto end;
}
}
if (byteIsNumorX == 1)
//如果输入的身份证号码从字符上讲上合法的,则进行下一步的验证
{
switch (txtID.Text.Length)
//判断输入的身份证号码的长度,并做不同的处理
{
case 15:
//如果输入的身份证是15位号,则将其扩充为17位码
strID = strID.Substring(0, 6) + “19” + strID.Substring(6);
break;
case 18:
//如果输入的身份证号是18位号,则对它的校验位进行验证,如果验证
//通过,则亦将其处理为17位码
if (IdChk.is18ChkNumRight(ref strID) == 1)
//判断校验位是否正确,如果正确则将其处理为17位码,并进入下
//一步的判断
{
strID = strID.Substring(0,17);
//取18位身份证号码的前17位
}
else
//如果错误,则提示用户18位码的校验码错误
{
lblInfo.Text = “The Last Check Code is Wrong!”;
IdChk.Msg(“The ID is illegal!”,1);
goto end;
}
break;
default:
//如果不是15或者18位码,则提示用户输入的身份证号码长度有误
lblInfo.Text = “The length of the ID is not 15 or 18”;
IdChk.Msg(“The length of the ID is illegal!”,1);
goto end;
}
if (strID.Length == 17)
//首先验证一下,15位或者18位码是否已经被正确的处理为17位码,如果是,则
//进行下一步的验证,否则,提示程序在断送的过程中出现了异常,请重新输入
//并再一次验证
{
if (IdChk.is17DateRight(strID) == 1)
//判断日期是否合法,如果合法,则进入下一步的判断
{
if (byteInputSex == 0)
//先判断用户是否输入了性别信息,如果没有输入,则提示用户输入的身
//份证号码除了性别信息都是正确的,并提示用户选择性别再验证
{
lblInfo.Text=“The ID is legal except the Sex, please select the Sex and Check again.”;
IdChk.Msg(“The ID is Legal except the Sex!”,3);
goto end;
}
else
//如果用户选择了性别,则进行性别的验证
{
int intSexTemp = Convert.ToChar(strID.Substring(16,1));
//从用户输入的身份证号码中读取性别信息,即取17位码的最后一位
if (intSexTemp % 2 == byteInputSex % 2)
//如果二者同为奇数或者同为偶数,则提示用户输入的身份证号码是
//合法的,否则提示用户输入的身份证号码的性别信息有误
{
lblInfo.Text = “The ID is legal!”;
IdChk.Msg(“The ID is Legal!”, 3);
goto end;
}
else
{
lblInfo.Text = “The Sex in the ID and Selected isnot matching!”;
IdChk.Msg(“The ID is illegal!”, 1);
goto end;
}
}
}
else
{
lblInfo.Text = “The Date Information in the ID is illegal”;
IdChk.Msg(“The ID is illegal!”,1);
goto end;
}
}
else
{
lblInfo.Text = “Process have some exceptional, please input the ID again!”;
IdChk.Msg(“Exceptional occurred!”,1);
goto end;
}
}
}
else
{
lblInfo.Text = “Please Input the Numbers”;
IdChk.Msg(“Please Input the ID!”,1);
}
end:
//“Check”按钮单击事件的末尾
;
}
当完成所有代码的编写后,便可以开始进行系统的调试了。
?
private void txtID_TextChanged(object sender, EventArgs e)
//这个事件会在txtID文本输入框的内容被改变时执行,目的是为了显示当前已经
//输入的字符个数
{
lblInfo.Text = “You Have been Input ” + txtID.Text.Length + “ Strings”;
if (txtID.Text.Length 》 18)
{
lblInfo.Text = “To much Numbers!!”;
}
}
然后是Clean按钮的单击事件,当单击这个按钮后,需要清空txtID输入框中的内容以供用户输入,另外,还需要清空的是用户对性别选择的两个单选按钮,它的代码如下所示。
private void btnClean_Click(object sender, EventArgs e)
//这是“Clean”按钮的单击事件,当这个按钮被单击操作时,便会执行这些个操
//作,包括:将txtID文本输入框内容清空,并消息提示框的文本内容改为“Clea red”,
//并将性别选择框中的选择取消
{
txtID.Text = “”;
lblInfo.Text = “Cleared.”;
rbMan.Checked = false;
rbWoman.Checked = false;
}
最后就是控制整个系统流程的Check按钮了,当用户单击这个按钮后,系统就需要使用它的流程来进行身份证号码的合法性判断,它会调用各个已经写好的方法,相对来讲,它的判断结构更加复杂,下面是它的实现代码。
private void btnCheck_Click(object sender, EventArgs e)
//这是“Check”按钮的单击事件,当这个按钮被单击操作时,便会执行这些个操
//作,它的主要作用是进行整个验证
{
string strID = txtID.Text;
//用来存储用户输入的需要验证的身份证号
byte byteIsNumorX = 0;
//一个标志,用于记录用户输入的字符串是否含有非法字符,如果含有则置为0,
//否则置为1
byte byteInputSex = 0;
//对用户所进行的性别选择进行记载,当用户没有选择性别时,将其置为0,如果
//选择为男性,则置为1,如果选择为女性,则置为2
if (txtID.Text.Length 》= 1)
{
if (rbMan.Checked)
//如果用户选择了身份证编码的对象为男性,则置intInputSex为1
{
byteInputSex = 1;
}
if (rbWoman.Checked)
//如果用户选择了身份证编码的对象为女性,则置intInputSex为0
{
byteInputSex = 2;
}
for (int i = 0; i 《= txtID.Text.Length - 1; i++)
//该循环的主要目的是为了验证用户输入的需要验证的字符身份证号码中
//是否包含了非法字符
{
string strIDEachBit = txtID.Text.Substring(i,1);
//每次从用户输入的身份证号码中取出一个字符进行合法性验证
if ((IdChk.ischarlegal(strIDEachBit) == 1) || (i == 17 && IdChk. ischarlegal(strIDEachBit) == 2))
//进行字符合法性判断,除了第18位上的字符,其他字符都不能为非数字
{
byteIsNumorX = 1;
//字符合法,由标志位置1
}
else
//输入的需要验证的身份证号码中含有非法字符或者X出现在了不对
//的位置,提示错误,并告诉用户错误的原因
{
lblInfo.Text = “The X isnot in the Right Place,or other letters in the ID”;
IdChk.Msg(“The ID is illegal!”, 1);
goto end;
}
}
if (byteIsNumorX == 1)
//如果输入的身份证号码从字符上讲上合法的,则进行下一步的验证
{
switch (txtID.Text.Length)
//判断输入的身份证号码的长度,并做不同的处理
{
case 15:
//如果输入的身份证是15位号,则将其扩充为17位码
strID = strID.Substring(0, 6) + “19” + strID.Substring(6);
break;
case 18:
//如果输入的身份证号是18位号,则对它的校验位进行验证,如果验证
//通过,则亦将其处理为17位码
if (IdChk.is18ChkNumRight(ref strID) == 1)
//判断校验位是否正确,如果正确则将其处理为17位码,并进入下
//一步的判断
{
strID = strID.Substring(0,17);
//取18位身份证号码的前17位
}
else
//如果错误,则提示用户18位码的校验码错误
{
lblInfo.Text = “The Last Check Code is Wrong!”;
IdChk.Msg(“The ID is illegal!”,1);
goto end;
}
break;
default:
//如果不是15或者18位码,则提示用户输入的身份证号码长度有误
lblInfo.Text = “The length of the ID is not 15 or 18”;
IdChk.Msg(“The length of the ID is illegal!”,1);
goto end;
}
if (strID.Length == 17)
//首先验证一下,15位或者18位码是否已经被正确的处理为17位码,如果是,则
//进行下一步的验证,否则,提示程序在断送的过程中出现了异常,请重新输入
//并再一次验证
{
if (IdChk.is17DateRight(strID) == 1)
//判断日期是否合法,如果合法,则进入下一步的判断
{
if (byteInputSex == 0)
//先判断用户是否输入了性别信息,如果没有输入,则提示用户输入的身
//份证号码除了性别信息都是正确的,并提示用户选择性别再验证
{
lblInfo.Text=“The ID is legal except the Sex, please select the Sex and Check again.”;
IdChk.Msg(“The ID is Legal except the Sex!”,3);
goto end;
}
else
//如果用户选择了性别,则进行性别的验证
{
int intSexTemp = Convert.ToChar(strID.Substring(16,1));
//从用户输入的身份证号码中读取性别信息,即取17位码的最后一位
if (intSexTemp % 2 == byteInputSex % 2)
//如果二者同为奇数或者同为偶数,则提示用户输入的身份证号码是
//合法的,否则提示用户输入的身份证号码的性别信息有误
{
lblInfo.Text = “The ID is legal!”;
IdChk.Msg(“The ID is Legal!”, 3);
goto end;
}
else
{
lblInfo.Text = “The Sex in the ID and Selected isnot matching!”;
IdChk.Msg(“The ID is illegal!”, 1);
goto end;
}
}
}
else
{
lblInfo.Text = “The Date Information in the ID is illegal”;
IdChk.Msg(“The ID is illegal!”,1);
goto end;
}
}
else
{
lblInfo.Text = “Process have some exceptional, please input the ID again!”;
IdChk.Msg(“Exceptional occurred!”,1);
goto end;
}
}
}
else
{
lblInfo.Text = “Please Input the Numbers”;
IdChk.Msg(“Please Input the ID!”,1);
}
end:
//“Check”按钮单击事件的末尾
;
}
当完成所有代码的编写后,便可以开始进行系统的调试了。
?
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 嵌入式系统系列丛书-时间触发嵌入式系统设计模式 0次下载
- ARM嵌入式系统复习要点
- 对嵌入式系统的初步认识
- 嵌入式系统定义
- 嵌入式系统与嵌入式PLC
- 嵌入式机器视觉系统设计
- 嵌入式系统与嵌入式PLC 27次下载
- 基于ARM嵌入式系统的Socket通信设计 26次下载
- 嵌入式系统的入门学习教程合集
- 嵌入式系统是如何组成的
- 嵌入式系统教程之嵌入式系统工程设计的详细资料说明 31次下载
- 嵌入式系统教程之嵌入式处理器的详细资料说明 18次下载
- 嵌入式操作系统的介绍和嵌入式操作系统的发展状况和应用前景说明
- 学习嵌入式系统有哪些方向?
- 嵌入式Linux开发教程之嵌入式系统介绍资料免费下载
- 嵌入式系统的应用实例 1120次阅读
- 什么是嵌入式系统?嵌入式系统的具体应用 2563次阅读
- 嵌入式系统应用实例的详细资料介绍 4840次阅读
- 嵌入式系统应该学习那些知识 5230次阅读
- 嵌入式系统的全面解析 3280次阅读
- 嵌入式系统的组成结构详细说明 7470次阅读
- 如何实现嵌入式系统远程调试 5401次阅读
- 嵌入式系统的规范发展回顾 1677次阅读
- 关于嵌入式系统以及嵌入式平台下的学科分工详解 2025次阅读
- 嵌入式系统的特点大汇总 5896次阅读
- 嵌入式系统有哪些部分组成_嵌入式系统的应用领域 3.4w次阅读
- 嵌入式行业发展状况_嵌入式行业人才需求_嵌入式系统就业前景分析 2.4w次阅读
- 什么是嵌入式操作系统 常见的嵌入式系统有哪些 4w次阅读
- 嵌入式操作系统是什么_嵌入式操作系统有哪些 2w次阅读
- 典型的嵌入式系统设计 2716次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论