MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > セル型 > InputManセル > GcDateTime型セル > 入力の制御(GcDateTime型セル) |
GcDateTime型セルでは、入力可能な日付範囲や、値の扱い方を設定できます。ここではGcDateTime型セルが提供する入力機能について解説します。
GcDateTime型セルでは書式設定により、日付や時刻の入力および表示書式を自由に設定できます。入力書式はセルが編集状態のときの書式で、表示書式はセルが非編集状態のときの書式です。書式には和暦を使用することも可能です。
詳細は「書式を設定する」で解説します。
ShowLiterals プロパティを使えば、入力中にリテラル文字列を表示するかどうかを指定できます。
リテラル文字とは、DateLiteralFieldInfo プロパティ(リテラルフィールド)で定義された文字列をそのまま表示する文字列をいいます。
また、入力パターンフィールドには、プロンプト文字を設定することができます。プロンプト文字はPromptChar プロパティを使用します。プロンプト文字を使用することで、入力フィールドを明示的に表示したり入力文字数を視覚的に表すことができます。
クリップボードにリテラル文字を含まない値を渡すには、ClipContent プロパティを使用します。なお、プロンプト文字列は、ClipContent プロパティの設定に関わらず常にクリップボードに渡されます。
MaxDate プロパティとMinDate プロパティを設定してセルに入力可能な日付範囲を指定することができます。
すべてのフィールドの値が入力されると検証が行われ、範囲外の日付の場合にはMaxMinBehavior プロパティの設定によって、値が制御されます。MaxMinBehaviorプロパティに設定できる値は以下のとおりで、既定値はMaxMinBehavior.AdjustToMaxMinです。
MaxMinBehavior プロパティ値 | 説明 |
---|---|
AdjustToMaxMin | 値を最小値か最大値の近い方に設定します。 |
Clear | 値を削除してnull にします。 |
Restore | 変更前の値に戻します。 |
CancelInput | 最後の入力をキャンセルしてフォーカスを保持します。 |
Keep | エラーとなったText プロパティの値を保持します。 |
次のサンプルコードはGcDateTime型セルに最大値および最小値を設定します。
C# |
コードのコピー
|
---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType gdcell = new GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType(); // 最大日付と最小日付を設定します。 gdcell.MaxDate = DateTime.Parse("2100/12/31"); gdcell.MinDate = DateTime.Parse("2000/1/1"); // 範囲外の場合に値をどのように制御するかを設定します。 gdcell.MaxMinBehavior = GrapeCity.Win.Spread.InputMan.CellType.MaxMinBehavior.CancelInput; FpSpread1.ActiveSheet.Cells[0, 0].CellType = gdcell; |
Visual Basic |
コードのコピー
|
---|---|
Dim gdcell = New GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType() ' 最大日付と最小日付を設定します。 gdcell.MaxDate = DateTime.Parse("2100/12/31") gdcell.MinDate = DateTime.Parse("2000/1/1") ' 範囲外の場合に値をどのように制御するかを設定します。 gdcell.MaxMinBehavior = GrapeCity.Win.Spread.InputMan.CellType.MaxMinBehavior.CancelInput FpSpread1.ActiveSheet.Cells(0, 0).CellType = gdcell |
EditMode プロパティを使って、コントロールがフォーカスを受け取ったときのデフォルトの編集モードを定義できます。EditMode プロパティをEditMode.Insertにすると挿入モード、EditMode.Overwriteにすると上書きモードになります。また、EditMode.FixedInsertとEditMode.FixedOverwriteでは、編集モードが固定されるので、実行中に[Ins]キーが押されても編集モードは切り替わりません。
FieldsEditMode プロパティを使用すると、GcDateTime型セルの各フィールドの入力モードを変更することができます。FieldsEditMode には次の3つの値を設定することができます。
FieldsEditModeの値 | 説明 |
---|---|
LeftSide | フィールドで値は左から右に入力されます。 |
RightSide | フィールドで値は右から左に入力されます。 |
Unfixed | フィールドで値は左から右に入力されます。 日付や時刻が1桁の値の場合は先頭に0を付加する必要はありません。 (図) 月のフィールドに1を入力した場合、値は1月と認識されます。 |
DefaultActiveField プロパティを使用すると、セルが編集状態になったときにキャレットを配置するフィールドを指定できます。
AcceptsCrLf プロパティを使用してクリップボードへ改行を含む文字列をコピー、または貼り付けた場合の改行コードの扱いを設定できます。AcceptsCrLf プロパティは、以下の3つの動作から選択します。
AcceptsCrLfの値 | 説明 |
---|---|
NoControl | 改行コードはそのままでコピー、貼り付けを行います。従来のInputManの日付コントロールと同じ動作です。 |
Filter | 全ての改行コードを削除しコピー、貼り付けを行います。 |
Cut | 最初の改行コード以降の文字列を削除します。標準コントロールと同じ動作です。 |