学生的优化还在继续,所以就会有新的问题跳出来!遇到问题解决问题,这就是我们提高班人的作风!加油!
问题六:日历问题
背景:做系统要全心全意为用户着想,所以添加日历功能,让用户使用起来更加方便!
选择:工程--部件--控件--Microsoft Windows CommonControls--2.6.0--添加MonthView控件
代码如下:
<span style="font-size:24px;"><span style="font-size:24px;">Private Sub Form_Load()
MonthView1.Visible = False
End Sub</span></span>
<span style="font-size:24px;"><span style="font-size:24px;">'添加日历
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
txtBorndate.Text = MonthView1.Year & "-" & MonthView1.Month & "-" & MonthView1.Day
MonthView1.Visible = False
End Sub
'添加日历
Private Sub txtBorndate_Click()
MonthView1.Visible = True
End Sub
</span></span>
通过以上设计,我们就可以在系统中添加日历啦!
问题七:入校日期不能早于出生日期
如果你发现自己还没出生呢就入校了,这样是不是很滑稽?
代码如下:
<span style="font-size:24px;">Private Sub txtRudate_Change()
Dim a As Boolean
'判断入学日期是否大于出生日期
a = True
If IsDate(txtRudate.Text) And IsDate(txtBorndate.Text) Then
If CDate(txtRudate.Text) < CDate(txtBorndate.Text) Then
a = False
End If
End If
If a = False Then
MsgBox "入学日期不能小于出生日期!", vbOKOnly + vbExclamation, "警告"
txtRudate.Text = ""
txtBorndate.Text = ""
txtBorndate.SetFocus
Exit Sub
End If
End Sub</span>
<span style="font-size:24px;">Private Sub txtBorndate_Change()
Dim a As Boolean
'判断入学日期是否大于出生日期
a = True
If IsDate(txtRudate.Text) And IsDate(txtBorndate.Text) Then
If CDate(txtRudate.Text) < CDate(txtBorndate.Text) Then
a = False
End If
End If
If a = False Then
MsgBox "入学日期不能小于出生日期!", vbOKOnly + vbExclamation, "警告"
txtRudate.Text = ""
txtBorndate.Text = ""
txtBorndate.SetFocus
Exit Sub
End If
End Sub</span>
为了确保无论先输入出生日期还是入校日期都能弹出“入校日期不能小于出生日期!”这句话,出生日期和入校日期文本框都要设置如上的Change事件。
问题八:出生日期不能晚于当天
有了上面的基础,这个问题就很好解决了,思路是一样的!
代码如下:
<span style="font-size:24px;">Private Sub txtBorndate_Change()
Dim b As Boolean
'判断出生日期是否小于当天日期
b = True
If IsDate(txtBorndate.Text) Then
If CDate(txtBorndate.Text) > CDate(Now) Then
b = False
End If
End If
If b = False Then
MsgBox "出生日期不能晚于当天!", vbOKOnly + vbExclamation, "警告"
txtBorndate.Text = ""
Exit Sub
End If
End Sub</span>
我们在做系统的时候会发现经常用到清空所有文本框的操作,之前都是用的以下操作:text1.text=""
text2.text=""
......
这样写代码控件少还可以接受,但是如果有几十个控件,那我的小心脏估计也是受不了啊,下面介绍一种省事的方法!
代码如下:
<span style="font-size:24px;">'清空所有文本框
Dim ctrl As Control
For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then '是否为文本框TextBox
ctrl.Text = ""
End If
Next
End Sub</span>
这样既为我们节约了不少时间,也可以让我们编写的代码更简便!问题十:查询信息时,去掉单选框的对勾,使其后面的内容一同消失
代码如下:
<span style="font-size:24px;">'在查询信息时,去掉单选框的对勾,使其文本框后的内容同时消失
Private Sub Check1_Click(Index As Integer)
If Check1(0).Value = False Then
txtSID.Text = ""
End If
If Check1(1).Value = False Then
txtName.Text = ""
End If
If Check1(2).Value = False Then
txtClassno.Text = ""
End If
End Sub</span>
在运行时发现按住Tab键时,光标总是瞎移动,让我很想收拾他一顿!
经查证发现,只要改变控件的TabIndex属性的值就OK,数值小的在前面,数值小的在后面!
未完待续。。。。。。
共同进步!