设置 UltraWinGrid 日期单元格的最小值

Setting Min Value of a Date cell of UltraWinGrid

我的其中一个表格中有一个 UltraWinGrid 供用户输入增值税税率。共有 3 列:

我需要验证网格,这样如果在某行的 "Date From" 单元格中输入了值,用户只能输入 "Date From" 值 + 1 天的最小值.

这要用什么方法呢?我该怎么做?

我试过

Private Sub ugVatRates_BeforeCellActivate(sender As Object, e As CancelableCellEventArgs) Handles ugVatRates.BeforeCellActivate

 Dim dateFrom As Date

 If IsDBNull(e.Cell.Row.Cells("DateFrom").Value) = False OrElse e.Cell.Row.Cells("DateFrom").Value <> Nothing Then
   dateFrom = e.Cell.Row.Cells("DateFrom").Value
   e.Cell.Row.Cells("DateTo").MinValue = dateFrom.AddDays(1)
End If

End Sub

但是,MinValue 在这里无效 属性 - 有什么建议吗?

是的,MinValue 和 MaxValue 仅由 UltraGridColumn 公开。但是,这不适用于您的情况。您可以做的是处理 BeforeCellUpdate 事件。在此事件中,检查单元格用户是否尝试更新 DateTo 单元格以及 DateFrom 是否具有值。如果是这样,您可以通过将 e.Cancel 设置为 true 来抑制接受新值,如下所示:

    Private Sub ugVatRates_BeforeCellActivate(sender As Object, e As Infragistics.Win.UltraWinGrid.BeforeCellUpdateEventArgs) Handles ugVatRates.BeforeCellUpdate
    If e.Cell.Column.Header.Caption = "DateTo" Then
        Dim dateFrom As Date
        Dim dateTo As Date

        If IsDBNull(e.Cell.Row.Cells("DateFrom").Value) = False OrElse e.Cell.Row.Cells("DateFrom").Value <> Nothing Then
            dateFrom = e.Cell.Row.Cells("DateFrom").Value
            dateTo = Date.Parse(e.Cell.Row.Cells("DateTo").Text)
            If dateTo < dateFrom.AddDays(1) Then
                ' Suppress accepting of new value 
                e.Cancel = True
            End If
        End If
    End If
End Sub

当用户输入无效日期时,您可以显示一个消息框来通知他,或者使用 UltraGrid 的 Data Validation