///?<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;
???????????}
???????}
详细解决方案
录入学员的身份证后控件焦点转移时依据身份证号码获得生日和性别
热度:300 发布时间:2012-09-05 15:19:34.0