MESCIUS MultiRow for Windows Forms 12.0J
初期値の自動確定

DateTimePickerCellの既定の動作では、セルの編集時に初期値として現在の日時が表示されます。この初期値は、セルの値を明示的に入力しない限りセルの値として保存されません。これはSystem.Windows.Forms.DateTimePickerコントロールを継承するDateTimePickerEditingControlの動作によるものです。
DateTimePickerCellに表示される初期値をそのまま入力値として適用するには、セルの編集が完了したタイミングで、初期値を持つDateTimePickerCellに対して、明示的に値を入力する処理を行う必要があります。
サンプルコード
Imports GrapeCity.Win.MultiRow

Private Sub GcMultiRow1_CellEndEdit(ByVal sender As System.Object, ByVal e As CellEndEditEventArgs) Handles GcMultiRow1.CellEndEdit
    Dim gcMultiRow As GcMultiRow = TryCast(sender, GcMultiRow)
    Dim currentCell As Cell = gcMultiRow.Rows(e.RowIndex).Cells(e.CellIndex)
    
    If e.EditCanceled = False Then
        If TypeOf currentCell Is DateTimePickerCell Then
            If currentCell.Value Is Nothing Then
                currentCell.Value = Date.Now
            End If
        End If
    End If
End Sub
using GrapeCity.Win.MultiRow;

private void gcMultiRow1_CellEndEdit(object sender, CellEndEditEventArgs e)
{
    GcMultiRow gcMultiRow = sender as GcMultiRow;
    Cell currentCell = gcMultiRow.Rows[e.RowIndex].Cells[e.CellIndex];
    
    if (e.EditCanceled == false)
    {
        if (currentCell is DateTimePickerCell)
        {
            if (currentCell.Value == null)
            {
                currentCell.Value = DateTime.Now;
            }
        }
    }
}
   
関連トピック

 

 


© MESCIUS inc. All rights reserved.