サンプルコード
GcMultiRow.CellValidateInfoNeededイベントで検証が成功したかどうかはIsValidプロパティで取得できます。また、検証情報を設定するにはValidateContext.ValidateInfoプロパティを使用します。
次のコードは、範囲の検証(RangeValidator)と3段階のアイコンによる通知(ThreeStateIconNotify)を使用して、検証が成功時およびエラー時の情報を設定します。
次のコードは、範囲の検証(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以上の値を入力してください。"; } } } }