我正在开发 Visual Basic V6.0 应用程序。
我有一个带有垂直滚动条的表单来更改日历和标签中的日期。
我附上了表格的截图。当用户在突出显示的垂直条箭头上仅单击一次时 - 更改事件会被多次触发。
即使我们只点击一次,我也无法弄清楚为什么会多次触发。
我已经尝试在调试中运行应用程序 - 我没有看到任何问题。
此外,我尝试将 log msg - 这也表示 - 事件触发了两次。如果第二次调用,还尝试将标志变量退出子。
这不是每次都发生,但是是的,大多数时候。
任何建议表示赞赏。
致以最热烈的问候
维沙尔·帕特尔
Private Sub Vscroll2_Change()
Dim newmonth As Integer
Dim pass_date As String
Dim curr_dtime As String
Dim yeard As Variant
Dim chg_date As String
Dim set_new_month As Integer
newmonth = VScroll2.Value
curr_dtime = GetFormTagVar(Me, "CURR_DTIME")
Call SetFormTagVar(Me, "OLD_DTIME", curr_dtime)
yeard = Year(curr_dtime)
'set calendar refresh on if we have changed year or month
If (yeard <> Year(curr_dtime)) Or (Month(CVDate(curr_dtime)) <> newmonth) Then
SetCalRefresh (True)
End If
If Month(CVDate(curr_dtime)) <> newmonth Then
set_new_month = False
If newmonth = 13 Then
newmonth = 1
set_new_month = True
yeard = Year(curr_dtime)
yeard = yeard + 1
End If
If newmonth = 0 Then
newmonth = 12
set_new_month = True
yeard = Year(curr_dtime)
yeard = yeard - 1
End If
'* figure out the new date
If newmonth < 10 Then
pass_date = yeard & "0" & newmonth & "01" & "0000"
Else
pass_date = yeard & newmonth & "01" & "0000"
End If
pass_date = DatePaint(pass_date, True)
Call SetFormTagVar(Me, "CURR_DTIME", pass_date)
Call SetFormTagVar(Me, "NEW_DTIME", "1")
lbldate.Caption = DatePaint(DateParseFnc(pass_date), True)
chg_date = GetFormTagVar(Me, "CURR_DTIME")
If set_new_month Then
Call SetFormTagVar(Me, "NEW_MONTH", YES_FLAG)
VScroll2.Value = newmonth
End If
Call check_calendar(Me)
Call SetupNotesMenuItems
End If
'We're done
End Sub