デザイナによる設定
デザイナでセルの検証と共にValueProcessを使用するには、次のように操作します。
- 値を検証するセルを選択する。(例: textBoxCell1)
- プロパティウィンドウでValidatorsプロパティを選択し、[...]ボタンをクリックする。
- 表示されたCellValidatorコレクションエディタで左上のコンボボックスから「IncludeListValidator」を選択し、[追加]をクリックする。
- [メンバ]リストでIncludeListValidatorが選択されていることを確認する。
- 画面右のプロパティグリッドでCandidatesプロパティを選択し、[...]ボタンをクリックする。
- 表示された「文字コレクション エディタ」に、必須とする文字列を設定する。
例:- 東京
- 大阪
- [OK]ボタンをクリックしてウィンドウを閉じる。
- 画面右のプロパティグリッドでActionsプロパティを選択し、[...]ボタンをクリックする。
- 表示されたCellValidateActionコレクションエディタでValueProcessを追加する。
- [メンバ]リストでValueProcessが選択されていることを確認する。画面右のプロパティグリッドでDoActionReasonプロパティにCellValidating、ValueProcessOptionプロパティにClearをそれぞれ設定する。
- [OK]ボタンをクリックしてCellValidateActionコレクションエディタを閉じる。
- [OK]ボタンをクリックしてCellValidatorコレクションエディタを閉じる。
- デザイナのドキュメントウィンドウのタブを「実行時」に切り替える。
- 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;
|