デザイナによる設定
デザイナでセルの値の比較による検証を設定するには、次のように操作します。この例では、2つの数値型セルの値が異なる場合に検証エラーを表示します。
- 数値型セルを2つ配置する。(例:numericUpDownCell1、numericUpDownCell2)
- 値を検証するセルを選択する。(例: numericUpDownCell2)
- プロパティウィンドウでValidatorsプロパティを選択し、[...]ボタンをクリックする。
- 表示されたCellValidatorコレクションエディタで左上のコンボボックスから「CompareCellValidator」を選択し、[追加]をクリックする。
- [メンバ]リストでCompareCellValidatorが選択されていることを確認する。
- 画面右のプロパティグリッドでComparedCellNameプロパティを選択し、「numericUpDownCell1」を選択する。
- 画面右のプロパティグリッドでComparedOperatorプロパティを選択し、「Equals」を選択する。
- 画面右のプロパティグリッドでActionsプロパティを選択し、[...]ボタンをクリックする。
- 表示されたCellValidateActionコレクションエディタでLineNotifyを追加する。
- [OK]ボタンをクリックしてCellValidateActionコレクションエディタを閉じる。
- [OK]ボタンをクリックしてCellValidatorコレクションエディタを閉じる。
- デザイナのドキュメントウィンドウのタブを「実行時」に切り替える。
- numericUpDownCell1とnumericUpDownCell2に異なる値を入力し、検証エラーになることを確認する。
コーディングによる設定
次のコードは、セルと隣接するセルの値が異なる場合に検証エラーを表示します。
Imports GrapeCity.Win.MultiRow Dim NumericUpDownCell1 As New NumericUpDownCell() NumericUpDownCell1.Name = "NumericUpDownCell1" NumericUpDownCell1.Value = 12 Dim NumericUpDownCell2 As New NumericUpDownCell() NumericUpDownCell2.Name = "NumericUpDownCell2" NumericUpDownCell2.Value = 12 Dim CompareCellValidator1 As New CompareCellValidator() CompareCellValidator1.RequiredType = GetType(Integer) CompareCellValidator1.ComparedCellName = "NumericUpDownCell2" CompareCellValidator1.ComparedOperator = ValidateComparisonOperator.Equals CompareCellValidator1.Actions.Add(New LineNotify()) NumericUpDownCell1.Validators.Add(CompareCellValidator1) Dim cells As Cell() = {NumericUpDownCell1, NumericUpDownCell2} GcMultiRow1.Template = Template.CreateGridTemplate(cells) GcMultiRow1.RowCount = 10
using GrapeCity.Win.MultiRow; NumericUpDownCell numericUpDownCell1 = new NumericUpDownCell(); numericUpDownCell1.Name = "numericUpDownCell1"; numericUpDownCell1.Value = 12; NumericUpDownCell numericUpDownCell2 = new NumericUpDownCell(); numericUpDownCell2.Name = "numericUpDownCell2"; numericUpDownCell2.Value = 12; CompareCellValidator compareCellValidator1 = new CompareCellValidator(); compareCellValidator1.RequiredType = typeof(int); compareCellValidator1.ComparedCellName = "numericUpDownCell2"; compareCellValidator1.ComparedOperator = ValidateComparisonOperator.Equals; compareCellValidator1.Actions.Add(new LineNotify()); numericUpDownCell1.Validators.Add(compareCellValidator1); Cell[] cells = { numericUpDownCell1, numericUpDownCell2 }; gcMultiRow1.Template = Template.CreateGridTemplate(cells); gcMultiRow1.RowCount = 10;