MESCIUS SPREAD for Windows Forms 17.0J
入力の制御(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 最初の改行コード以降の文字列を削除します。標準コントロールと同じ動作です。
参照

 

 


© MESCIUS inc. All rights reserved.