MESCIUS CalendarGrid for Windows Forms 4.0J
データの入力

既定では空欄のセルにはユーザーが任意の値を入力できます。入力を開始する方法は次のとおりです。


コーディングによるデータの設定

コーディングによってセルに値を入力するには、CalendarCell.Valueプロパティに値を設定します。

GcCalendarGrid1.SetValue(DateTime.Today, 1, 0, "Hello")
gcCalendarGrid1.SetValue(DateTime.Today, 1, 0, "Hello");

または

Imports GrapeCity.Win.CalendarGrid

Dim today As DateTime = DateTime.Today
GcCalendarGrid1.Content(today).Rows(1).Cells(0).Value = "Hello"
using GrapeCity.Win.CalendarGrid;

var today = DateTime.Today;
gcCalendarGrid1.Content[today].Rows[1].Cells[0].Value = "Hello";


編集中のコントロール

編集中のセルには、セル編集コントロールが表示されます。たとえば、CalendarTextBoxCellTypeの場合はTextBoxEditingControlが対応します。
セル編集コントロールには、GcCalendarGrid.EditingControlプロパティやGcCalendarGrid.EditingControlShowingイベントを通してアクセスできます。
次のコードは、編集確定時にセルの編集前の値と編集中の値を比較します。

Imports GrapeCity.Win.CalendarGrid

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim today As DateTime = DateTime.Today
    Dim textBoxCellType As New CalendarTextBoxCellType()
    GcCalendarGrid1.Content(today).Rows(1).Cells(0).CellType = textBoxCellType
    GcCalendarGrid1.Content(today).Rows(1).Cells(0).CellStyle.BackColor = Color.Azure
    GcCalendarGrid1.ScrollIntoView(today)
End Sub

Private Sub GcCalendarGrid1_CellValidating(sender As Object, e As GrapeCity.Win.CalendarGrid.CalendarCellValidatingEventArgs) Handles GcCalendarGrid1.CellValidating
    Dim gcCalendarGrid As GcCalendarGrid = DirectCast(sender, GcCalendarGrid)
    If TypeOf gcCalendarGrid.Content(e.CellPosition.Date).Rows(e.CellPosition.RowIndex).Cells(e.CellPosition.ColumnIndex).CellType Is CalendarTextBoxCellType Then
        Dim beforeEdit As Object = gcCalendarGrid.Content(e.CellPosition.Date).Rows(e.CellPosition.RowIndex).Cells(e.CellPosition.ColumnIndex).Value
        If (beforeEdit IsNot Nothing) Then
            Console.WriteLine("編集前の値:{0}", beforeEdit.ToString())
        Else
            Console.WriteLine("編集前の値:(なし)")
        End If
        If gcCalendarGrid.EditingControl IsNot Nothing Then
            Console.WriteLine("編集中の値:{0}", gcCalendarGrid.EditingControl.Text)
        Else
            Console.WriteLine("編集中の値:(なし)")
        End If
    Else
        Console.WriteLine("現在のセルはTextBox型ではありません")
    End If
End Sub
using GrapeCity.Win.CalendarGrid;

private void Form1_Load(object sender, EventArgs e)
{
    var today = DateTime.Today;
    var textBoxCellType = new CalendarTextBoxCellType();
    gcCalendarGrid1.Content[today].Rows[1].Cells[0].CellType = textBoxCellType;
    gcCalendarGrid1.Content[today].Rows[1].Cells[0].CellStyle.BackColor = Color.Azure;
    gcCalendarGrid1.ScrollIntoView(today);
    gcCalendarGrid1.CellValidating += gcCalendarGrid1_CellValidating;
}

void gcCalendarGrid1_CellValidating(object sender, CalendarCellValidatingEventArgs e)
{
    var gcCalendarGrid = sender as GcCalendarGrid;
    if (gcCalendarGrid.Content[e.CellPosition.Date].Rows[e.CellPosition.RowIndex].Cells[e.CellPosition.ColumnIndex].CellType is CalendarTextBoxCellType)
    {
        object beforeEdit = gcCalendarGrid.Content[e.CellPosition.Date].Rows[e.CellPosition.RowIndex].Cells[e.CellPosition.ColumnIndex].Value;
        if (beforeEdit != null)
        {
            Console.WriteLine("編集前の値:{0}", beforeEdit.ToString());
        }
        else
        {
            Console.WriteLine("編集前の値:(なし)");
        }
        if (gcCalendarGrid.EditingControl != null)
        {
            Console.WriteLine("編集中の値:{0}", gcCalendarGrid.EditingControl.Text);
        }
        else
        {
            Console.WriteLine("編集中の値:(なし)");
        }
    }
    else
    {
        Console.WriteLine("現在のセルはTextBox型ではありません");
    }
}


セル型の自動生成

GcCalendarGrid.AutoGenerateCellTypeプロパティがTrueの場合、CalendarGridは入力されたデータ型に応じて最適なセル型を自動的に表示します。

データ型

表示されるセル型

TimeSpan

CalendarGcTimeSpanCellType

Boolean

CalendarCheckBoxCellType

ImageまたはIcon

CalendarImageCellType

DateTime

CalendarGcDateTimeCellType

Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Decimal, Single, Double

CalendarGcNumberCellType

nullまたはその他の型

CalendarTextBoxCellType


関連トピック

 

 


© MESCIUS inc. All rights reserved.