2017-04-04 62 views
0

我想問,dateedit2中的日期值如何自動更新/值當我鍵入或更改dateedit1中的值如果日期超過日期「15」。在dateedit2啓用是錯誤的。 例如,如果dateedit1日期小於15,則dateedit2.date更改爲1,如果dateedit1大於15,則dateedit2.date更改爲30。我該在dateedit1更改dateedit2價值基於dateedit1

用什麼樣的事件我的代碼

Private Sub DateEdit1_EditValueChanging(sender As Object, e As Controls.ChangingEventArgs) Handles DateEdit2.EditValueChanging 
    Dim dat As Date = Date.FromOADate(15) 
    If DateEdit1.DateTime.Date > dat Then 
     DateEdit2.EditValue = Date.FromOADate(30) 

    End If 
End Sub 

enter image description here

+0

30或dateedit1採取的月底? – Steve

+0

順便說一下,這是從DevExpress類型的DateEdit控件嗎? – Steve

+0

@Steve只是30月,不是月底,iam使用devexpress – chopperfield

回答

1

如果我理解正確的話,那麼你需要檢查什麼是一天的價值在你第一次DateEdit控件,然後定義第二個DateEdit控件的新值。

Private Sub DateEdit1_EditValueChanging(sender As Object, e As Controls.ChangingEventArgs) Handles DateEdit2.EditValueChanging 
    Dim day As Integer 
    Dim curDay As Integer = DateEdit1.DateTime.Day 
    If curDay < 15 Then 
     day = 1 
    Else 
     day = 30 ' DateTime.DaysInMonth(DateEdit1.DateTime.Year, DateEdit1.DateTime.Month) 
    End If 
    DateEdit2.DateTime = New DateTime(DateEdit1.Year, DateEdit1.Month, day) 
End Sub 

當然,這需要啓用SyncSelectionWithEditValue你可以從DevExpress文檔

讀取這枚跟隨你的要求,始終30,因爲我認爲你需要檢查第二個日期時間控制值無論如何,因爲在二月你會得到一個無效的日期。

.... 
If curDay < 15 Then 
    day = 1 
Else 
    ' For February we need an extra check.... 
    if DateEdit1.DateTime.Month = 2 Then 
     day = DateTime.DaysInMonth(DateEdit1.DateTime.Year, 2) 
    Else 
     day = 30 
    End If 
End If 
..... 
+0

它的工作原理。謝謝 – chopperfield

0

試試這個|我沒有Dateedit所以我用DateTimePicker

Private Sub DateTimePicker1_ValueChanged(sender As System.Object, e As System.EventArgs) Handles DateTimePicker1.ValueChanged 
    DateTimePicker2.Value = DateTimePicker1.Value.AddDays(15) 
End Sub