MESCIUS InputMan for ASP.NET 10.0J
入力の制御

日付時刻コントロールでは入力可能な範囲を指定したり、日付型としての正当性検査を行うなど、値の扱いを制御することができます。

書式の設定
日付時刻コントロールでは書式設定により、日付や時刻の入力および表示書式を自由に設定することができます。入力書式は、コントロールが入力フォーカスを受け取ったときの書式で、表示書式は入力フォーカスのないときの書式です。書式には和暦を使用することも可能です。

入力書式の設定は、Formatプロパティを使用します。また、表示書式は、DisplayFormatプロパティを使用し、それぞれキーワードを設定することで、書式を作成します。 これらのプロパティやキーワードについては、「書式の設定」で詳しく解説します。
入力範囲の指定
MinDateプロパティとMaxDateプロパティを使用してコントロールに入力可能な日付範囲を指定できます。 AdjustValueOnFocusプロパティがTrueの場合は、すべてのフィールドの値が入力されたとき、Falseの場合はフォーカスが移動するときに検証が行われます。 範囲外の日付が入力されると、InvalidRangeクライアントイベントが発生し、MaxMinBehaviorプロパティの設定によって値が制御されます。 MaxMinBehaviorプロパティに設定できる値は以下のとおりで、既定値はMaxMinBehavior.Restoreです。

MaxMinBehaviorの値 説明
AdjustToMaxMin 値を最小値か最大値の近い方に設定します。
Clear 値を削除してnull(Visual BasicではNothing)にします。
Restore 変更前の値に戻します。
CancelInput 最後の入力をキャンセルしてフォーカスを保持します。
Keep 最後に入力された現在値を保持します。


なお、ValueプロパティをNullに初期化するには、Clearメソッドを使用します。

次のサンプルコードは、範囲外の値を最小日付か最大日付の近い方の値に、入力中に自動調整される例です。この例では、「2013/12/31」と値を入力すると「2014/01/01」に自動調整されます。
Imports GrapeCity.Web.Input.Core

GcDateTime1.MaxValue = DateTimeEx.Parse("2014/12/31")
GcDateTime1.MinValue = DateTimeEx.Parse("2014/01/01")
GcDateTime1.AdjustValueOnFocus = True
GcDateTime1.MaxMinBehavior = MaxMinBehavior.AdjustToMaxMin
using GrapeCity.Web.Input.Core;

GcDateTime1.MaxValue = DateTimeEx.Parse("2014/12/31");
GcDateTime1.MinValue = DateTimeEx.Parse("2014/01/01");
GcDateTime1.AdjustValueOnFocus = true;
GcDateTime1.MaxMinBehavior = MaxMinBehavior.AdjustToMaxMin;
有効性のチェック
日付時刻コントロールでは、入力時に、日付時刻として有効な文字種のだけが許可されるほか、以下のプロパティとイベントにより多重チェックが行われます。

機能 説明
 ValidateMode 入力中にコントロールに適用される正当性検査のレベルを指定します。
 InvalidRange MinDateプロパティとMaxDateプロパティで定義された有効範囲を超えた値を入力して、コントロールからフォーカスを移動したときに発生します。
 InvalidValue 日付に変換できない値、または日付として認識できない値を入力して、コントロールからフォーカスを移動したときに発生します。

発生する可能性のあるイベントは、ValidateModeプロパティで設定した正当性検査のレベルによって、次のように異なります。

イベント 完全チェック 簡易チェック チェックなし
InvalidInput
InvalidRange
InvalidValue ×
IMEモードの設定
ImeModeプロパティを使用して、コントロールがフォーカスを取得したときのIMEの状態を設定することができます。
ImeModeプロパティに設定可能な値は次のとおりで、既定値はImeMode.Autoです。

ImeModeの値 説明
Auto 指定しません。
Active 日本語入力モードになります。
InActive 半角英数文字入力モードになります。
Disabled IMEが無効になります。手動でIMEを有効にすることもできません。
改行コードの取り扱い
AcceptsCrLfプロパティを使用してクリップボードへ改行を含む文字列をコピー、または貼り付けた場合の改行コードの扱いを設定できます。AcceptsCrLfプロパティは、以下の3つの動作から選択します。 既定値はCrLfMode.NoControlです。

AcceptsCrLfの値 説明
NoControl 改行コードはそのままでコピー、貼り付けを行います。
Filter コピー、切り取り、または貼り付け文字列内にあるすべての改行コードを削除します。
Cut コピー、切り取り、および貼り付け文字列内にある最初の改行コード以降の文字列を切り取ります。
リテラル文字列を含まない値の取得と設定
Valueプロパティを使えば、リテラル文字列とプロンプト文字列を除いたコントロールの基となる値をDateTimeEx型で取得または設定できます。

また、Numberプロパティを使えば、リテラル文字列とプロンプト文字列を除いたコントロール内の日付を長整数型で取得または設定できます。たとえば、Textプロパティに「平成 27年01月01日」が設定されているときには、Numberプロパティの値は「20150101000000」となります。Numberプロパティが変更されると、その変更はDisplayTextプロパティとTextプロパティ、およびValueプロパティにも適用されます。

コピーや切り取りなどのユーザー操作によりクリップボードにリテラル文字を含まない値を渡すには、ClipContentプロパティをClipContent.ExcludeLiteralsに設定します。 ClipContentプロパティの設定は、クライアント側のSelectedTextプロパティから取得できる文字列にも適用されます。

なお、プロンプト文字列は、ClipContentプロパティの設定に関わらず常にクリップボードに渡されます。
関連トピック

 

 


© MESCIUS inc. All rights reserved.