作成日: 2020/12/21 最終更新日: 2020/12/21
文書種別
使用方法
詳細
FlexGridには、編集時にセルに入力されたデータ値の正当性を検証するために、ValidateEditイベントが用意されています。このイベント内で入力データをチェックし、不正な場合は入力をキャンセルしたり、許容できる値に強制的に変更するといったことが可能です。
下記コードでは、グリッド1列目に10を超える値が入力されると編集状態のままとなり、10以下の値が入力されるまで他のセルに移動することができません。
また、2列目に10を超える値が入力された場合は、値が強制的に10に置き換えられます。なおこの場合は他のセルに移動可能です。
◎サンプルコード(VB)
下記コードでは、グリッド1列目に10を超える値が入力されると編集状態のままとなり、10以下の値が入力されるまで他のセルに移動することができません。
また、2列目に10を超える値が入力された場合は、値が強制的に10に置き換えられます。なおこの場合は他のセルに移動可能です。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
C1FlexGrid1.Cols(1).DataType = GetType(Integer)
C1FlexGrid1.Cols(2).DataType = GetType(Integer)
End Sub
Private Sub C1FlexGrid1_ValidateEdit(sender As Object, e As C1.Win.C1FlexGrid.ValidateEditEventArgs) Handles C1FlexGrid1.ValidateEdit
If e.Col = 1 Then
If CType(C1FlexGrid1.Editor.Text, Integer) 10 Then
e.Cancel = True
End If
End If
If e.Col = 2 Then
If CType(C1FlexGrid1.Editor.Text, Integer) 10 Then
C1FlexGrid1.Editor.Text = "10"
End If
End If
End Sub
◎サンプルコード(C#) private void Form1_Load(object sender, EventArgs e)
{
c1FlexGrid1.Cols[1].DataType = typeof(int);
c1FlexGrid1.Cols[2].DataType = typeof(int);
}
private void c1FlexGrid1_ValidateEdit(object sender, C1.Win.C1FlexGrid.ValidateEditEventArgs e)
{
if (e.Col == 1)
{
if (Convert.ToInt32(c1FlexGrid1.Editor.Text) 10)
{
e.Cancel = true;
}
}
if (e.Col == 2)
{
if (Convert.ToInt32(c1FlexGrid1.Editor.Text) 10)
{
c1FlexGrid1.Editor.Text = "10";
}
}
}
旧文書番号
86278