MESCIUS MultiRow for Windows Forms 12.0J
値の処理(ValueProcess)

ValueProcessを使用すると、検証エラーが発生した場合に入力値に対して、保持、削除、入力前の値に復元のいずれかの処理を行うことができます。ValueProcessは、セルの検証時またはセルの編集状態が終了したときに実行されます。
デザイナによる設定
デザイナでセルの検証と共にValueProcessを使用するには、次のように操作します。

  1. 値を検証するセルを選択する。(例: textBoxCell1)
  2. プロパティウィンドウでValidatorsプロパティを選択し、[...]ボタンをクリックする。
  3. 表示されたCellValidatorコレクションエディタで左上のコンボボックスから「IncludeListValidator」を選択し、[追加]をクリックする。
  4. [メンバ]リストでIncludeListValidatorが選択されていることを確認する。
  5. 画面右のプロパティグリッドでCandidatesプロパティを選択し、[...]ボタンをクリックする。
  6. 表示された「文字コレクション エディタ」に、必須とする文字列を設定する。
    例:
    • 東京
    • 大阪
  7. [OK]ボタンをクリックしてウィンドウを閉じる。
  8. 画面右のプロパティグリッドでActionsプロパティを選択し、[...]ボタンをクリックする。
  9. 表示されたCellValidateActionコレクションエディタでValueProcessを追加する。
  10. [メンバ]リストでValueProcessが選択されていることを確認する。画面右のプロパティグリッドでDoActionReasonプロパティにCellValidating、ValueProcessOptionプロパティにClearをそれぞれ設定する。
  11. [OK]ボタンをクリックしてCellValidateActionコレクションエディタを閉じる。
  12. [OK]ボタンをクリックしてCellValidatorコレクションエディタを閉じる。
  13. デザイナのドキュメントウィンドウのタブを「実行時」に切り替える。
  14. textBoxCell1に「名古屋」と入力してセルを移動したときに検証エラーになり、入力値が削除されることを確認する。
コーディングによる設定
次のコードは、セルに「東京」または「大阪」以外の文字列が入力されたときに検証エラーとなり、入力値を削除します。

Imports GrapeCity.Win.MultiRow

Dim TextBoxCell1 As New TextBoxCell()
Dim IncludeListValidator1 As New IncludeListValidator()
Dim ValueProcess1 As New ValueProcess()
ValueProcess1.DoActionReason = ValidateReasons.CellValidating
ValueProcess1.ValueProcessOption = ValueProcessOption.Clear
IncludeListValidator1.Candidates = New String() {"東京", "大阪"}
IncludeListValidator1.Actions.Add(ValueProcess1)
TextBoxCell1.Validators.Add(IncludeListValidator1)

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

TextBoxCell textBoxCell1 = new TextBoxCell();
IncludeListValidator includeListValidator1 = new IncludeListValidator();
ValueProcess valueProcess1 = new ValueProcess();
valueProcess1.DoActionReason = ValidateReasons.CellValidating;
valueProcess1.ValueProcessOption = ValueProcessOption.Clear;
includeListValidator1.Candidates = new string[] { "東京", "大阪" };
includeListValidator1.Actions.Add(valueProcess1);
textBoxCell1.Validators.Add(includeListValidator1);

Cell[] cells = { textBoxCell1 };
gcMultiRow1.Template = Template.CreateGridTemplate(cells);
gcMultiRow1.RowCount = 10;
  • DoActionReason プロパティに EndEdit が設定された場合、CellValidating が設定された場合とは ValueProcess が実行されるタイミングが異なるだけで、最終的な結果は同じになります。
   
関連トピック

 

 


© MESCIUS inc. All rights reserved.