2017-03-09 37 views
1

我必须在DateTimePicker周五前加7天。这是我的代码。周五加7天?

我知道它会创建一个循环,因为从周五开始的7天是星期五。然后它重演,我怎么能阻止它在第一个星期五之后重复?

 If Me.DateTimePicker1.Value.DayOfWeek = DayOfWeek.Saturday _ 
     Or Me.DateTimePicker1.Value.DayOfWeek = DayOfWeek.Sunday Then 
      If Me.DateTimePicker1.Value.DayOfWeek = DayOfWeek.Saturday Then 
       Me.DateTimePicker1.Value = Me.DateTimePicker1.Value.AddDays(-1) 
      Else 
       Me.DateTimePicker1.Value = Me.DateTimePicker1.Value.AddDays(-2) 
      End If 
     End If 
     If Me.DateTimePicker1.Value.DayOfWeek = DayOfWeek.Friday Then 
      Me.DateTimePicker1.Value = Me.DateTimePicker1.Value.AddDays(7) 
     End If 
    End Sub 
End Class 
+4

我猜这是在变化事件? – Plutonix

+0

是的,那是什么。你的回答帮了我很多。我对编程和本网站很陌生,非常感谢! – taby

回答

1

创建一个全局状态变量:

Dim busy as Boolean 
busy = False 

在你的子,你做这样的事情:所以用这个

Sub dateTimePicker1Change... 
    if not busy then 

      busy = True 
      ' Your logic here 
      busy = False 
    End if 
End Sub 

,您的事件应触发了两次,但是当它在您还在处理第一个事件时第二次被解雇,您已将您的busy状态设置为True,这会立即导致第二个事件处理的返回(没有进一步触发)。

+3

20世纪80年代叫。他们想要他们的'GoTo'回来。 – Plutonix

+0

它仍然是基本的;) – Psi

+0

为什么使用'GoTo'而不是'If Not busy Then'? –

相关问题