none
vb2008中,MonthCalendar1为什么每隔一秒中就会自动触发DateChange事件,有什么方法不让它自动触发啊? RRS feed

答案

  • 您好,是否有别的代码在更改日期?这个事件是日期更改就触发。
    如果只是希望鼠标点击再触发,请使用DateSelected事件。
    • 已标记为答案 Weber Li 2009年10月8日 0:32
    2009年9月29日 10:55

全部回复

  • 你好!
         这个事件是MonthCalendar 中的所选日期更改时发生。 无论使用鼠标、键盘还是编写代码,只要发生任何日期选择操作,就会发生 DateChanged 事件。
         如果你没有改变选定日期的话,不会触发这个事件的,你再仔细检查一下代码!

    周雪峰
    2009年9月29日 3:14
    版主
  • 代码如下:
    在Form_load事件中
            MonthCalendar1.SelectionRange.Start = ""
            MonthCalendar1.SelectionRange.End = ""
            MonthCalendar1.MaxSelectionCount = 1
            MonthCalendar1.TodayDate = Today.Date
        Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
               '这里就是要触发的事件
        End Sub
    其他地方就没任何涉及到MonthCalendar1的代码啦,但现在仍然是每隔一段时间就自动触发 MonthCalendar1_DateChanged事件,哪怕是打开后手动触发一次,放在那里不动程序,它也会自动触发,谢谢!
    2009年9月29日 9:12
  • 您好,是否有别的代码在更改日期?这个事件是日期更改就触发。
    如果只是希望鼠标点击再触发,请使用DateSelected事件。
    • 已标记为答案 Weber Li 2009年10月8日 0:32
    2009年9月29日 10:55
  • 你好!
         尝试把这行去掉:
    MonthCalendar1.TodayDate = Today.Date
    周雪峰
    2009年9月29日 11:10
    版主
  • 是否在某个地方直接调用了Form_load子程序?
    类似于Form_load(me, new eventargs())的?
    另外是否有Timer控件?看看Timer的Tick事件的代码。

    编程是永无止境的,向大家学习
    2009年10月8日 0:27