作成日: 2024/06/24 最終更新日: 2024/06/24
文書種別
使用方法
詳細
DataTypeをDateまたはDateTimeに設定して日付型にしたセルでは、ユーザーからの入力を受け付けるためのドロップダウンカレンダーが自動的に表示されます。
これを表示させないようにするには、EditMask プロパティを用いてマスクを設定したのち、ValidateEditイベントにて、入力値が日付型の値として有効かどうかを検証するという手順を実施します。
以下に、簡単な設定コードを記載します。ここでは、入力書式を「年月日」のみに限定しています。

◎サンプルコード(VB)
これを表示させないようにするには、EditMask プロパティを用いてマスクを設定したのち、ValidateEditイベントにて、入力値が日付型の値として有効かどうかを検証するという手順を実施します。
以下に、簡単な設定コードを記載します。ここでは、入力書式を「年月日」のみに限定しています。
◎サンプルコード(VB)
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
C1FlexGrid1.Cols(1).Caption = "日付型"
C1FlexGrid1.Cols(1).DataType = GetType(DateTime)
C1FlexGrid1.Cols(1).EditMask = "0000/00/00"
C1FlexGrid1.GetCellRange(1, 1, C1FlexGrid1.Rows.Count - 1, 1).StyleNew.Format = "yyyy/MM/dd"
C1FlexGrid1(1, 1) = DateTime.Now
End Sub
' 有効な日付か検証
Private Sub C1FlexGrid1_ValidateEdit(sender As Object, e As C1.Win.C1FlexGrid.ValidateEditEventArgs) Handles C1FlexGrid1.ValidateEdit
If e.Col = 1 Then
Dim d As DateTime
If DateTime.TryParse(C1FlexGrid1.Editor.Text, d) = False Then
e.Cancel = True
MessageBox.Show("無効な日付です")
End If
End If
End Sub
End Class
◎サンプルコード(C#)
namespace prj_C1FlexGrid
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
c1FlexGrid1.Cols[1].Caption = "日付型"; //列のキャプションを設定
c1FlexGrid1.Cols[1].DataType = typeof(DateTime); //列のデータ型を日付型に設定
c1FlexGrid1.Cols[1].EditMask = "0000/00/00"; // 列にマスクを設定
c1FlexGrid1.GetCellRange(1, 1, c1FlexGrid1.Rows.Count - 1, 1).StyleNew.Format = "yyyy/MM/dd"; // 書式指定文字列を設定
c1FlexGrid1[1, 1] = DateTime.Now;
}
// 有効な日付か検証
private void c1FlexGrid1_ValidateEdit(object sender, ValidateEditEventArgs e)
{
if (e.Col == 1)
{
DateTime d;
if (DateTime.TryParse(c1FlexGrid1.Editor.Text, out d) == false)
{
e.Cancel = true;
MessageBox.Show("無効な日付です");
}
}
}
}
}