MESCIUS MultiRow for Windows Forms 12.0J
検証情報のカスタマイズ

セルの検証が行われるとGcMultiRow.CellValidateInfoNeededイベントが発生します。このイベントを使用すると検証結果として表示される情報をカスタマイズすることができます。
サンプルコード
GcMultiRow.CellValidateInfoNeededイベントで検証が成功したかどうかはIsValidプロパティで取得できます。また、検証情報を設定するにはValidateContext.ValidateInfoプロパティを使用します。
次のコードは、範囲の検証(RangeValidator)3段階のアイコンによる通知(ThreeStateIconNotify)を使用して、検証が成功時およびエラー時の情報を設定します。
Imports GrapeCity.Win.MultiRow

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim NumericUpDownCell1 As New NumericUpDownCell()
    Dim RangeValidator1 As New RangeValidator()
    RangeValidator1.RequiredType = GetType(Integer)
    RangeValidator1.MaxValue = 10
    RangeValidator1.MinValue = 1
    RangeValidator1.NullIsValid = False
    RangeValidator1.Actions.Add(New ThreeStateIconNotify())
    NumericUpDownCell1.Validators.Add(RangeValidator1)

    Dim cells As Cell() = {NumericUpDownCell1}
    GcMultiRow1.Template = Template.CreateGridTemplate(cells)
    GcMultiRow1.RowCount = 10
End Sub

Private Sub GcMultiRow1_CellValidateInfoNeeded(sender As Object, e As CellValidateInfoNeededEventArgs) Handles GcMultiRow1.CellValidateInfoNeeded
    If TypeOf e.CellValidator Is RangeValidator Then
    If e.IsValid Then
            e.ValidateContext.ValidateInfo = "正しい値です。"
    Else
            If e.ValidateContext.EditedFormattedValue > 10 Then
                e.ValidateContext.ValidateInfo = "10以下の値を入力してください。"
        End If

            If e.ValidateContext.EditedFormattedValue < 1 Then
                e.ValidateContext.ValidateInfo = "1以上の値を入力してください。"
            End If
        End If
    End If
End Sub
using GrapeCity.Win.MultiRow;

private void Form1_Load(object sender, EventArgs e)
{
    NumericUpDownCell numericUpDownCell1 = new NumericUpDownCell();
    RangeValidator rangeValidator1 = new RangeValidator();
    rangeValidator1.RequiredType = typeof(int);
    rangeValidator1.MaxValue = 10;
    rangeValidator1.MinValue = 1;
    rangeValidator1.NullIsValid = false;
    rangeValidator1.Actions.Add(new ThreeStateIconNotify());
    numericUpDownCell1.Validators.Add(rangeValidator1);

    Cell[] cells = { numericUpDownCell1 };
    gcMultiRow1.Template = Template.CreateGridTemplate(cells);
    gcMultiRow1.RowCount = 10;
}

private void gcMultiRow1_CellValidateInfoNeeded(object sender, CellValidateInfoNeededEventArgs e)
{
    if (e.CellValidator is RangeValidator)
    {
        if (e.IsValid)
        {
            e.ValidateContext.ValidateInfo = "正しい値です。";
        }
        else
        {
            if (Convert.ToInt32(e.ValidateContext.EditedFormattedValue) > 10)
            {
                e.ValidateContext.ValidateInfo = "10以下の値を入力してください。";
            }
            if(Convert.ToInt32(e.ValidateContext.EditedFormattedValue) < 1)
            {
                e.ValidateContext.ValidateInfo = "1以上の値を入力してください。";
            }
        }
    }
}
   
関連トピック

 

 


© MESCIUS inc. All rights reserved.