製品の概要 > NumericBox > NumericBox要素 |
NumericBox for WPF/Silverlight には C1NumericBox コントロールがあります。これは、数値の入力と編集を提供するシンプルなコントロールです。XAML ウィンドウに追加された C1NumericBox コントロールは、完全な機能を備えた数値エディタになります。デフォルトでは、コントロールのインターフェイスは次の図のように表示されます。
コントロールは次の要素で構成されます。
ユーザーは、アップボタンとダウンボタンを使用して、コントロールに表示される値を変更できます。ボタンをクリックするたびに、Increment プロパティで指示された値(デフォルトでは1)だけ Value が変化します。デフォルトでは、アップボタンとダウンボタンが表示されます。これらのボタンを非表示にするには、ShowButtons プロパティを False に設定します。
Value プロパティの値は、数値表示/編集領域に表示されます。ユーザーは、ボックスに入力して、Value プロパティを変更できます。デフォルトでは、ユーザーがこの数値を編集できます。コントロールの編集をロックするには、IsReadOnly を True に設定します。
C1NumericBox コントロールに表示される数値の表示方法を変更できます。それには、Format プロパティを設定します。NumericBox for WPF/Silverlight は、Microsoft によって定義される標準の数値書式文字列をサポートします。詳細については、「MSDN」を参照してください。
Format 文字列は、書式を定義する英字または英字と数字の組み合わせで構成されます。デフォルトでは、Format プロパティは「F0」に設定されています。英字は書式タイプを指示します。この「F」は固定小数点を表し、数字は小数点以下の桁数を表します(この場合はなし)。
次の書式を使用できます。
書式指定子 | 名前 | 説明 |
---|---|---|
C または c | Currency |
数値は、金額を表す文字列に変換されます。変換は、現在の NumberFormatInfo オブジェクトの通貨書式情報によって制御されます。 精度指定子は、小数点以下の桁数を指示します。精度指定子を省略すると、現在の NumberFormatInfo オブジェクトで指定されるデフォルトの通貨精度が使用されます。 |
D または d | Decimal |
この書式は、整数型でのみサポートされます。数値は 10 進数字(0〜9)から成る文字列に変換されます。数字が負の場合は、先頭にマイナス記号が付きます。 精度指定子は、結果の文字列に必要な最小桁数を指示します。精度指定子によって指定された桁数になるように、必要に応じて、数字の左側がゼロで埋められます。 次の例は、Decimal 書式指定子で Int32 値を書式設定しています。 |
E または e | Scientific(指数) |
数値は、「-d.ddd…E+ddd」または「-d.ddd…e+ddd」形式の文字列に変換されます。「d」はそれぞれ数字(0〜9)を示します。数値が負である場合は、文字列の先頭にマイナス記号(-)が付加されます。小数点の前には、常に1桁の数字が置かれます。 精度指定子は、小数点以下の桁数を指示します。精度指定子を省略すると、デフォルトで小数点以下6桁が使用されます。 書式指定子の大文字と小文字は、指数部分の前に「E」と「e」のどちらを付けるかを指示します。指数は、常にプラス記号(+)またはマイナス記号(-)と3桁以上の数字で表されます。この形式でない場合は、必要に応じて指数に0が付加されます。 |
F または f | 固定小数点 |
数値は、「-ddd.ddd…」形式の文字列に変換されます。「d」はそれぞれ数字(0〜9)を示します。数値が負である場合は、文字列の先頭にマイナス記号(-)が付加されます。 精度指定子は、小数点以下の桁数を指示します。精度指定子を省略すると、現在の NumberFormatInfo オブジェクトの NumberDecimalDigits プロパティによってデフォルトの数値精度が指定されます。 |
G または g | General |
数値の型と精度指定子の有無に応じて、固定小数点または指数表記のいずれか簡単な方の形式に数値が変換されます。精度指定子を省略するか0にした場合は、次のリストに示すように、数値の型によってデフォルトの精度が決定されます。
数値を指数表記で表現する場合の指数部が -5 より大きく、精度指定子より小さい場合は、固定小数点表記が使用されます。それ以外の場合は、指数表記が使用されます。必要に応じて、結果には小数点が含まれ、末尾の0は省略されます。精度指定子があり、結果の有効桁数が指定された精度を超えている場合は、数値が丸められて末尾の余分な桁が除かれます。 上の規則の例外として、数値が Decimal で、精度指定子が省略されている場合があります。その場合は、常に固定小数点表記が使用され、末尾の0は保持されます。 指数表記を使用する場合は、書式指定子が「G」なら結果の指数部の前に「E」が付き、書式指定子が「g」なら「e」が付きます。指数部は少なくとも2桁あります。これは、「E」または「e」書式指定子によって生成される指数表記の書式(指数部は3桁以上)とは異なります。 |
N または n | Number |
数値は、「-d,ddd,ddd.ddd…」形式の文字列に変換されます。「-」は負数の記号(必要に応じて)、「d」は数字(0〜9)、「,」は数値の区切り記号、「.」は小数点記号を示します。実際の負数パターン、桁区切りの間隔、区切り記号、および小数点はそれぞれ、現在の NumberFormatInfo オブジェクトの NumberNegativePattern、NumberGroupSizes、NumberGroupSeparator、および NumberDecimalSeparator プロパティによって指定されます。 精度指定子は、小数点以下の桁数を指示します。精度指定子を省略すると、現在の NumberFormatInfo オブジェクトの NumberDecimalDigits プロパティによってデフォルトの数値精度が指定されます。 |
P または p | Percent |
数値は、NumberFormatInfo.PercentNegativePattern プロパティ(数値が負の場合)または NumberFormatInfo.PercentPositivePattern プロパティ(数値が正の場合)で定義されたとおりに、パーセントを表す文字列に変換されます。変換された数値は 100 倍されて、パーセンテージで示されます。 精度指定子は、小数点以下の桁数を指示します。精度指定子を省略すると、現在の NumberFormatInfo オブジェクトで指定されるデフォルトの数値精度が使用されます。 |
R または r | ラウンドトリップ |
この書式は、Single 型と Double 型でのみサポートされます。ラウンドトリップ指定子を指定すると、文字列に変換された数値が再度同じ数値に解析されます。この指定子を使って書式設定された数値は、まず、Double 型の場合は 15 スペースの精度、Single 型の場合は7スペースの精度の汎用の書式でテストされます。値が再度正しく同じ数値に解析された場合は、汎用の書式指定子を使って書式設定されます。ただし、値が再度同じ数値に解析されなかった場合は、Double 型の場合は 17 桁の精度、Single 型の場合は9桁の精度で書式設定されます。 精度指定子は指定してもかまいませんが、無視されます。この指定子を使用する場合は、精度よりラウンドトリップが優先されます。 |
X または x | Hexadecimal |
この書式は、整数型でのみサポートされます。数値が 16 進数字の文字列に変換されます。書式指定子の大文字と小文字は、9より大きい 16 進数字に大文字を使用するか小文字を使用するかを指示します。たとえば、「X」を使用すると「ABCDEF」になり、「x」を使用すると「abcdef」になります。 精度指定子は、結果の文字列に必要な最小桁数を指示します。精度指定子によって指定された桁数になるように、必要に応じて、数字の左側がゼロで埋められます。 |
その他の文字 | (不明な指定子) | (不明な指定子は実行時に FormatException を生成します) |
Minimum プロパティと Maximum プロパティを使用して、実行時の制限になる数値範囲を設定できます。Minimum プロパティや Maximum プロパティを設定すると、ユーザーは Maximum より大きい値や Minimum より小さい値を選択できなくなります。
Minimum および Maximum プロパティを設定する場合は、Minimum を Maximum より小さくする必要があります。また、Value プロパティには、Minimum と Maximum の範囲内の値を設定してください。
RangeValidationMode プロパティを使って範囲検証モードを選択することもできます。このプロパティは、入力された数字をいつ検証するかを制御します。RangeValidationMode には、次のオプションの1つを設定できます。
オプション | 説明 |
---|---|
Always | このモードでは、ユーザーは範囲外の値を入力できません。 |
AlwaysTruncate | このモードでは、ユーザーは範囲外の値を入力できません。制限を超えた値は切り捨てられます。 |
OnLostFocus | このモードでは、コントロールがフォーカスを失ったときに値が切り捨てられます。 |