在一个fram上有3个combobox,比如第一个是“年”,第二个是“月”,第三个是代表“日”
由于月份不同,“日”的天数也不同,我想让天数随年份,月份的变化而变化,这个我实现了,但是我在“日”的下拉表中选择一个后,对应的值没有显示出来,这是怎么回事?要用combobox的什么属性或方法?
事件处理代码如下:
Private Sub TimeComb_Click(Index As Integer)
Dim DayNum As Long
If (Index = 0 Or Index = 1) Then
Select Case (CInt(Me.TimeComb(1).Text))
Case 1, 3, 5, 7, 8, 10, 12
DayNum = 31
Case 4, 6, 9, 11
DayNum = 30
Case Else
If CInt(Me.TimeComb(0).Text) Mod 4 = 0 Then
If CInt(Me.TimeComb(0).Text) Mod 100 = 0 Then
DayNum = 28
End If
Else
DayNum = 29
End If
End Select
End If ComboxVal = 1
Me.TimeComb(2).Clear For Cnt = 1 To DayNum
Me.TimeComb(2).AddItem CStr(ComboxVal)
ComboxVal = ComboxVal + 1
Next
End Sub请指教!
由于月份不同,“日”的天数也不同,我想让天数随年份,月份的变化而变化,这个我实现了,但是我在“日”的下拉表中选择一个后,对应的值没有显示出来,这是怎么回事?要用combobox的什么属性或方法?
事件处理代码如下:
Private Sub TimeComb_Click(Index As Integer)
Dim DayNum As Long
If (Index = 0 Or Index = 1) Then
Select Case (CInt(Me.TimeComb(1).Text))
Case 1, 3, 5, 7, 8, 10, 12
DayNum = 31
Case 4, 6, 9, 11
DayNum = 30
Case Else
If CInt(Me.TimeComb(0).Text) Mod 4 = 0 Then
If CInt(Me.TimeComb(0).Text) Mod 100 = 0 Then
DayNum = 28
End If
Else
DayNum = 29
End If
End Select
End If ComboxVal = 1
Me.TimeComb(2).Clear For Cnt = 1 To DayNum
Me.TimeComb(2).AddItem CStr(ComboxVal)
ComboxVal = ComboxVal + 1
Next
End Sub请指教!
解决方案 »
- ListView中如何给汉字排序?
- 二个小问题(请教)
- 写自定义控件的问题,关于COMBOBOX。
- 请大家帮帮忙------(水晶报表问题)
- 如何读取 List1 中指定一行的内容?读取全部内容?删掉指定一行内容?
- VB能否捕获连接数据库的错误信息???
- 谁知道如何在mshflexgrid中设置列标题的显示?
- 有懂GIS系统的大哥吗?有什么软件可以绘制电子地图吗?Mapinfo太烂了。谢谢告诉我一个可以下载的地方重奖!!!
- 请教高手,如何使我打开的窗口在所有窗口的最上方
- 什么样的控件能实现以下的功能
- 格式控制
- vb sql 查询 如何在where 后面附加两个条件? 分别是 数据列 xl 等于数据 a(i) 和 cl 列等于 b(i,j)
Dim x As Integer
Combo6.Clear
Combo7.Clear
For x = 1 To 12
Combo6.AddItem x
Next x
End SubPrivate Sub Combo6_Click()
Dim j, day1, k As Integer
j = Combo6.Text
If j = 1 Or j = 3 Or j = 5 Or j = 7 Or j = 8 Or j = 10 Or j = 12 Then
day1 = 31
ElseIf j = 4 Or j = 6 Or j = 9 Or j = 11 Then
day1 = 30
ElseIf j = 2 Then
If (Val(Combo5.Text) Mod 4 = 0 And Val(Combo5.Text) Mod 100 > 0) Or Val(Combo5.Text) Mod 400 = 0 Then
day1 = 28
Else: day1 = 29
End If
End If
For k = 1 To day1
Combo7.AddItem k
Next k
End Sub
Dim x As Integer
Combo6.Clear
Combo7.Clear
For x = 1 To 12
Combo6.AddItem x
Next x
End SubPrivate Sub Combo6_Click()
Dim j, day1, k As Integer
j = Combo6.Text
If j = 1 Or j = 3 Or j = 5 Or j = 7 Or j = 8 Or j = 10 Or j = 12 Then
day1 = 31
ElseIf j = 4 Or j = 6 Or j = 9 Or j = 11 Then
day1 = 30
ElseIf j = 2 Then
If (Val(Combo5.Text) Mod 4 = 0 And Val(Combo5.Text) Mod 100 > 0) Or Val(Combo5.Text) Mod 400 = 0 Then
day1 = 28
Else: day1 = 29
End If
End If
For k = 1 To day1
Combo7.AddItem k
Next k
End SubPrivate Sub Form_Load()
For i = 2007 To 2020
Combo5.AddItem iNext i
End Sub
第一个忘了给combo5赋值了 ..
查了下是我代码位置的问题(我这个与style属性无多大关系,只要不是1就OK),刚才改好了
Private Sub TimeComb_Click(Index As Integer)
Dim DayNum As Long
If (Index = 0 Or Index = 1) Then
Select Case (CInt(Me.TimeComb(1).Text))
Case 1, 3, 5, 7, 8, 10, 12
DayNum = 31
Case 4, 6, 9, 11
DayNum = 30
Case Else
If CInt(Me.TimeComb(0).Text) Mod 4 = 0 Then
If CInt(Me.TimeComb(0).Text) Mod 100 = 0 Then
DayNum = 28
End If
Else
DayNum = 29
End If
End Select
Me.TimeComb(2).Clear
For Cnt = 1 To DayNum
Me.TimeComb(2).AddItem CStr(Cnt)
Next
Me.TimeComb(2).Text = "1" ‘每次事件触发时设置初始值1
End If
End Sub