PowerTools MultiRow for Windows Forms 8.0J
範囲の検証(RangeValidator)

RangeValidatorを使用すると、セルの値が指定した範囲に収まっているかどうかを検証できます。値が指定した範囲に含まれない場合、検証エラーになります。
デザイナによる設定
デザイナで範囲の検証を設定するには、次のように操作します。この例では、数値型セルに0〜10の範囲を超える値が入力されたときに検証エラーを表示します。

  1. 値を検証するセルを選択する。(例: numericUpDownCell1)
  2. プロパティウィンドウでValidatorsプロパティを選択し、[...]ボタンをクリックする。
  3. 表示されたCellValidatorコレクションエディタで左上のコンボボックスから「RangeValidator」を選択し、[追加]をクリックする。
  4. [メンバ]リストでRangeValidatorが選択されていることを確認する。
  5. 画面右のプロパティグリッドでMaxValueプロパティを選択し、「10」を入力する。
  6. 画面右のプロパティグリッドでMinValueプロパティを選択し、「0」を入力する。
  7. 画面右のプロパティグリッドでActionsプロパティを選択し、[...]ボタンをクリックする。
  8. 表示されたCellValidateActionコレクションエディタでLineNotifyを追加する。
  9. [OK]ボタンをクリックしてCellValidateActionコレクションエディタを閉じる。
  10. [OK]ボタンをクリックしてCellValidatorコレクションエディタを閉じる。
  11. デザイナのドキュメントウィンドウのタブを「実行時」に切り替える。
  12. 「50」を入力してセルを移動したときに検証エラーになることを確認する。
  13. 「50」を消して「5」を入力して移動したときに検証エラーにならないことを確認する。
コーディングによる設定
次のコードは、セルに-1や50といった0〜10の範囲を超える数値が入力されたときに検証エラーを表示します。

Imports GrapeCity.Win.MultiRow

Dim NumericUpDownCell1 As New NumericUpDownCell()
Dim RangeValidator1 As New RangeValidator()
RangeValidator1.RequiredType = GetType(Integer)
RangeValidator1.MaxValue = 10
RangeValidator1.MinValue = 0
RangeValidator1.Actions.Add(New LineNotify())
NumericUpDownCell1.Validators.Add(RangeValidator1)

Dim cells As Cell() = {NumericUpDownCell1}
GcMultiRow1.Template = Template.CreateGridTemplate(cells)
GcMultiRow1.RowCount = 10
using GrapeCity.Win.MultiRow;

NumericUpDownCell numericUpDownCell1 = new NumericUpDownCell();
RangeValidator rangeValidator1 = new RangeValidator();
rangeValidator1.RequiredType = typeof(int);
rangeValidator1.MaxValue = 10;
rangeValidator1.MinValue = 0;
rangeValidator1.Actions.Add(new LineNotify());
numericUpDownCell1.Validators.Add(rangeValidator1);

Cell[] cells = { numericUpDownCell1 };
gcMultiRow1.Template = Template.CreateGridTemplate(cells);
gcMultiRow1.RowCount = 10;
数値のカンマも含めた検証
RangeValidator.ParsingEnabledプロパティにTrueを設定すると、数値の文字列形式を等価な整数に変換して、変換した値に対して検証を行うことができます。また、ParsingEnabledプロパティにTrueが設定されている場合、カルチャを指定するためのFormatProviderプロパティを使用できます。

次のコードは、セルに入力されたカンマ付きの数値を検証します。

Imports System.Globalization
Imports GrapeCity.Win.MultiRow

Dim TextBoxCell1 As New TextBoxCell()
TextBoxCell1.Style.Format = "#,#00"
TextBoxCell1.ValueType = GetType(Integer)
Dim RangeValidator1 As New RangeValidator()
RangeValidator1.MaxValue = 10000
RangeValidator1.MinValue = 0
RangeValidator1.ParsingEnabled = True
RangeValidator1.FormatProvider = CultureInfo.CurrentCulture
RangeValidator1.Actions.Add(New LineNotify())
RangeValidator1.RequiredType = GetType(Decimal)
TextBoxCell1.Validators.Add(RangeValidator1)

Dim cells As Cell() = {TextBoxCell1}
GcMultiRow1.Template = Template.CreateGridTemplate(cells)
GcMultiRow1.RowCount = 10
using System.Globalization;
using GrapeCity.Win.MultiRow;

TextBoxCell textBoxCell1 = new TextBoxCell();
textBoxCell1.Style.Format = "#,#00";
textBoxCell1.ValueType = typeof(int);
RangeValidator rangeValidator1 = new RangeValidator();
rangeValidator1.MaxValue = 10000;
rangeValidator1.MinValue = 0;
rangeValidator1.ParsingEnabled = true;
rangeValidator1.FormatProvider = CultureInfo.CurrentCulture;
rangeValidator1.Actions.Add(new LineNotify());
rangeValidator1.RequiredType = typeof(Decimal);
textBoxCell1.Validators.Add(rangeValidator1);

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

 

 


© 2008-2015 GrapeCity inc. All rights reserved.