当前位置: 代码迷 >> Web前端 >> 录入学员的身份证后控件焦点转移时依据身份证号码获得生日和性别
  详细解决方案

录入学员的身份证后控件焦点转移时依据身份证号码获得生日和性别

热度:300   发布时间:2012-09-05 15:19:34.0
录入学员的身份证后控件焦点转移时根据身份证号码获得生日和性别

///?<summary>
///在控件验证?textBox_IdentityCard?的?Validated事件中定义身份证号码的合法性并根据身份证号码得到生日和性别

///?</summary>???????

???????
private?void?textBox_IdentityCard_Validated(object?sender,?EventArgs?e)

???????{
???????????
try
???????????{
???????????????
string?identityCard?=?textBox_IdentityCard.Text.Trim();//获取得到输入的身份证号码

???????????????
if?(string.IsNullOrEmpty(identityCard))
???????????????{
???????????????????MessageBox.Show(
"身份证号码不能为空!");//身份证号码不能为空,如果为空返回
???????????????????if?(textBox_IdentityCard.CanFocus)
???????????????????{

???????????????????????textBox_IdentityCard.Focus();
//设置当前输入焦点为textBox_IdentityCar

???????????????????}
???????????????????
return;
???????????????????}
???????????????
else
???????????????{
???????????????????
if?(identityCard.Length?!=?15?&&?identityCard.Length?!=?18)//身份证号码只能为15位或18位其它不合法
???????????????????{

???????????????????????MessageBox.Show(
"身份证号码为15位或18位,请检查!");

???????????????????????
if?(textBox_IdentityCard.CanFocus)
???????????????????????{
???????????????????????????textBox_IdentityCard.Focus();
???????????????????????}
???????????????????????
return;
????????????????????}
???????????????}

???????????????
string?birthday?=?"";
???????????????
string?sex?=?"";
???????????????
if?(identityCard.Length?==?18)//处理18位的身份证号码从号码中得到生日和性别代码
??????????????{
???????????????????birthday?
=?identityCard.Substring(6,?4)?+?"-"?+?identityCard.Substring(10,?2)?+?"-"?+?identityCard.Substring(12,?2);
???????????????????sex?
=?identityCard.Substring(14,?3);
???????????????}
???????????????
if?(identityCard.Length?==?15)
???????????????{

???????????????????birthday?
=?"19"?+?identityCard.Substring(6,?2)?+?"-"?+?identityCard.Substring(8,?2)?+?"-"?+?identityCard.Substring(10,?2);
???????????????????sex?
=?identityCard.Substring(12,?3);
???????????????}
???????????????textBox_Birthday.Text?
=?birthday;
???????????????
if?(int.Parse(sex)?%?2?==?0)//性别代码为偶数是女性奇数为男性
???????????????{
???????????????????
this.comboBox_Sex.Text?=?"";

??????????????}
???????????????
else
???????????????{
???????????????????
this.comboBox_Sex.Text?=?"";
???????????????}
???????????}
???????????
catch?(Exception?ex)
???????????{
???????????????MessageBox.Show(
"身份证号码输入有误");
???????????????
if?(textBox_IdentityCard.CanFocus)
???????????????{
???????????????????textBox_IdentityCard.Focus();
???????????????}
???????????????
return;
???????????}
???????}