PowerTools InputMan for ASP.NET 8.0J
入力の制御

数値コントロールでは入力可能な範囲の指定や、ゼロやNull値の扱いを制御することができます。

入力範囲の指定
MinValueプロパティとMaxValueプロパティを使用してコントロールに入力可能な数値の範囲を指定できます。範囲外の数値が入力されると、MaxMinBehaviorプロパティの設定によって値が制御されます。MaxMinBehaviorプロパティに設定できる値は以下のとおりで、既定値はMaxMinBehavior.Restoreです。

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

AdjustValueOnFocusプロパティがTrueのときは、ユーザーが入力中に値の調整が行われます。Falseの場合は、フォーカスが移動したあとに値が調整されます。

また、範囲外の値が入力されるとInvalidRangeクライアントイベントが発生します。
ゼロとNull値
ValueプロパティをNullに初期化するには、Clearメソッドを使用します。このとき、Valueプロパティの値を0に初期化するかNullに初期化するかをClearActionプロパティで指定できます。

また、AllowDeleteToNullプロパティをTrueに設定することで、入力された「0」をDeleteキーやBackSpaceキーで削除し、そのValueプロパティをNullにすることができます。
有効性のチェック
数値コントロールでは、入力時に、数値と小数点だけが許可されるほか、以下のクライアントイベントにより多重チェックが行われます。

機能 説明
 InvalidInput キーボードまたはクリップボードから無効な値を入力しようとしたときに発生します。
 InvalidRange MinValueプロパティとMaxValueプロパティで定義された有効範囲を超えた値を入力して、コントロールからフォーカスを移動したときに発生します。
リテラル文字列を含まない値の取得と設定
Valueプロパティを使えば、リテラル文字列を除いたコントロール内の数値をDecimal型で取得または設定できます。たとえば、Textプロパティに「\ 50,000.-」が設定されているときには、Valueプロパティの値は「50000」となります。

Valueプロパティが変更されると、その変更はDisplayTextプロパティとTextプロパティにも適用されます。

コピーや切り取りなどのユーザー操作によりクリップボードにリテラル文字を含まない値を渡すには、ClipContentプロパティを ClipContent.ExcludeLiteralsに設定します。

なお、ClipContentプロパティの設定は、クライアント側のSelectedTextプロパティから取得できる文字列にも適用されます。
小数点を含む値の制御

Formatプロパティによる入力書式の設定で小数の入力を許可しない場合、小数点が含まれた数値がクリップボードから貼り付けられたときの入力値をAcceptsDecimalプロパティを使用して制御することができます。既定値はDecimalMode.Cutです。

AcceptsDecimalの値 説明
Cut 小数点以下が切り捨てられます。「123.45」という数値が「123」として入力されます。
Filter 小数点が削除されます。「123.45」という数値が「12345」として入力されます。

次のサンプルコードは、数値コントロールに整数の入力のみ許可し、小数点を含む数値が貼り付けられたときは、小数点を削除する例です。

GcNumber1.Format.Digit = "#####"
GcNumber1.DisplayFormat.Digit = "#####"
GcNumber1.AcceptsDecimal = GrapeCity.Web.Input.IMNumber.DecimalMode.Filter
GcNumber1.Format.Digit = "#####";
GcNumber1.DisplayFormat.Digit = "#####";
GcNumber1.AcceptsDecimal = GrapeCity.Web.Input.IMNumber.DecimalMode.Filter;
改行コードの取り扱い
AcceptsCrLfプロパティを使用してクリップボードへ改行を含む文字列をコピー、または貼り付けた場合の改行コードの扱いを設定できます。AcceptsCrLfプロパティは、以下の3つの動作から選択します。 既定値はCrLfMode.NoControlです。

AcceptsCrLfの値 説明
NoControl 改行コードはそのままでコピー、貼り付けを行います。
Filter コピー、切り取り、または貼り付け文字列内にあるすべての改行コードを削除します。
Cut コピー、切り取り、および貼り付け文字列内にある最初の改行コード以降の文字列を切り取ります。
参照

 

 


© 2005-2015 GrapeCity inc. All rights reserved.