2017-03-09 35 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'? –

相關問題