×

嵌入式系统之事件

消耗积分:0 | 格式:rar | 大小:0.2 MB | 2017-11-06

分享资料个

 完成了方法的编写,就可以开始实现各个按钮的事件了,即当用户激发某些事情时,系统将产生相应的回应,比如,在用户输入时,通过文本框的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”按钮单击事件的末尾
  ;
  }
  当完成所有代码的编写后,便可以开始进行系统的调试了。
 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'嵌入式系统之事件',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);