我想问一下,如果日期超过日期“15”,当我输入或更改dateedit1中的值时,dateedit2中的日期值如何自动更新/值。在dateedit2启用是假的。 例如,如果dateedit1 date小于15,则dateedit2.date更改为1,如果dateedit1大于15,则dateedit2.date更改为30。我在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
答案 0 :(得分: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作为第二个日期时间控件的值我认为你需要检查月份部分,因为在2月的情况下你将得到一个无效的日期。
....
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
.....
答案 1 :(得分: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