身份证
vb吧
全部回复
仅看楼主
level 5
求教各位大大,有几个空不太会,谢谢。
Dim strProvince() As String = {"北京市", "天津市", "河北省", "山西省", "内蒙古自治区", "山东省"}
Dim strCode() As String = {"11", "12", "13", "14", "15", "37"} '#1 输入华北各省和直辖市的代号11~15到数组里,山东省是37
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
Dim s As String, i As Integer
s = txbID.Text.Substring(0, 2)
For i = 0 To______ '#2 正确设定循环次数
If _________(_________) Then Exit For '#3 完成这个表达式,使得符合条件时结束循环(尤其是这个空让我很迷茫)
Next
If i < 6 Then
lblProvince.Text = strProvince(______) '#4 显示
正确的
省份或者直辖市名
Else
lblProvince.Text = "不属于华北地区的省份。"
End If
s = txbID.Text.Substring(6, 4) '#5 把出生年份取出来。身份证号的第7位数到第10位数是出生年份
i = Val(s)
If i < 1800 Or i > 2017 Then
lblYear.Text = "不详"
Else
lblYear.Text = s
End If
s = txbID.Text.Substring(10, 2)
i = Val(s)
If i < 1 Or i > 12 Then '#6 判断如果不是正确的月份的条件表达式
lblMonth.Text = "不详"
Else
lblMonth.Text = s
End If
End Sub
Private Sub txbID_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txbID.TextChanged
Dim s As String = _________ '#7 给s赋予正确的初值(这个也是,这一过程都没用到,也不知道意义何在)
If txbID.TextLength = 18 Then '#8 判断输入的身份证号的位数是不是18位
btnOK.Enabled = True '#9 设置正确的属性
Else
btnOK.Enabled = False '#10 设置正确的属性
End If
End Sub
2020年05月14日 02点05分 1
level 9
你怎么做到按钮效果的?
2020年05月14日 03点05分 2
level 9
就是那个查询钮儿
2020年05月14日 03点05分 3
Button1.Name=btnOK btnOK.Text="查詢" 可能讓您誤會了,這只是txbID和btnOK靠得太近的效果。
2020年05月14日 04点05分
@贴吧用户_6S5DAN6Pt 你鼠标靠近是不是会有蓝框框?
2020年05月14日 06点05分
@抠脽酝jq87 是的。
2020年05月14日 06点05分
@抠脽酝jq87 这题的那几个空您会不,有些空我实在没辙。
2020年05月14日 06点05分
level 15
当点击按钮时,先取出身份证号前2位,查找是否在数组strCode中,因此从0循环到5(第2空),如果这两位等于strCode(i)(第3空填s=strCode(i)),则找到了对应的省份,退出循环;如果找不到,则正常循环结束,最后i=6
循环之后,比较i与6的关系,如果找到了对应省份(i<6),则显示出省份名称(第4空填i),否则显示“不属于华北地区的省份”
然后是取出年份和月份的处理,解释略
当身份证号文本框的内容发生改变时,给变量s赋值,这个操作确实意味不明,估计本意是把s定义成了窗体模块级的变量,当点击按钮时不使用文本框的内容,而是直接用变量s的值,然而前面却没有这样写(甚至还重新定义了一个s),所以第7空这句就失去意义了
2020年05月14日 08点05分 4
谢谢。我之前被第三空限制了,因为____(_____)有的时候会以为前面只能填一小段(之前我一直在那里填strCode(i),就是没有想过在前面加s=[泪],离正确差一步之遥)。
2020年05月14日 11点05分
1