
数値コントロールの書式は、
Formatプロパティと
DisplayFormatプロパティが参照する
NumberFormatオブジェクトおよび
NumberDisplayFormatを使って設定します。このオブジェクトの5つのプロパティ(
Digit、
PositivePrefix、
PositiveSuffix、
NegativePrefix、
NegativeSuffix)にキーワードを設定することで、書式を作成します。
1.リテラル文字列
数値コントロールには、キーワード以外の文字列をリテラル文字列として表示させることができます。ただし、リテラル文字列のみをFormatプロパティまたはDisplayFormatプロパティに設定することはできません。また、キーワードをリテラル文字として表示させるには、キーワードの前に円記号(\、Chr(92))を付けます。円記号を表示させる場合は \\ とします。
2. フィールド
数値コントロールのフィールドには、次の2種類があります。これらのフィールドのほかにリテラル文字列を設定することもできます。
3. 入力と表示の桁数が異なる場合
NumberFormat.Digitプロパティと
NumberDisplayFormat.Digitプロパティの設定値は、互いの書式の桁数が異なる場合でも、
Valueプロパティの値には影響を与えません。
たとえば、NumberDisplayFormat.Digitプロパティに設定された書式の小数部の桁数が、NumberFormat.Digitプロパティの小数部の桁数よりも少ない場合、フォーカス喪失時に0として表示されることがあります。この場合でも、Valueプロパティには元の値が保持されます。
数値コントロールの入力書式は、
Formatプロパティが参照する
NumberFormatオブジェクトを使って設定します。このオブジェクトの5つのプロパティにキーワードとリテラル文字列を設定することで、入力書式を作成します。
上記の各プロパティを空の文字列(""またはString.Empty)に設定すると、数値コントロールの動作は次のようになります。デフォルトでは、Digit、NegativePrefix以外のすべてのプロパティが空の文字列に設定されています。
対象となるプロパティ |
数値コントロールの動作 |
Digit |
DisplayFormatプロパティで設定したDigitの書式が適用されます。 |
PositivePrefix |
数値の前には何も表示されません。 (通貨記号も表示されません) |
PositiveSuffix |
数値の後には何も表示されません。 |
NegativePrefix |
数値の前には何も表示されません。 (負号も通貨記号も表示されません) |
NegativeSuffix |
数値の後には何も表示されません。 |
入力書式で使用できるキーワードは以下のとおりです。なお、各キーワードは特定のプロパティでしか使用できません。各キーワードを使用できるプロパティは、下表内の「対象」に記載しています。
キーワード |
説明 |
# |
数値の桁を指定します。値が0の場合は何も表示されません。 (対象:Digit) |
0 |
数値の桁を指定します。値が0の場合は0を表示します。 (対象:Digit) |
.(ピリオド) |
小数点の表示位置を指定するプレースホルダです。実際に表示される小数点は、DecimalPointプロパティで設定します。 (対象:Digit) |
,(コンマ) |
桁区切り記号の表示位置を指定するプレースホルダです。実際に表示される桁区切り記号は、Separatorプロパティで設定します。 (対象:Digit) |
$ |
通貨記号の表示位置を指定するプレースホルダです。実際に表示される通貨記号は、CurrencySymbolプロパティで設定します。 (対象:PositivePrefix、NegativePrefix) |
\ |
キーワードをリテラル文字として表示させます。 (対象:Digit以外のすべての有効なプロパティ) |
以下に、Digitプロパティで設定可能な数値書式の設定例をいくつか上げます。
書式 |
表記例 |
説明 |
##.## |
10 10.1 99.99 |
整数部2桁、少数部2桁を表します。値が 0 の時は何も表示されません。 |
#0.## |
0 10.1 99.99 |
整数部2桁、少数部2桁を表します。値が 0 の時は 0 が表示されます。 |
00 |
00 99 |
整数部2桁を表します。 値が1桁の場合には、十の位には 0 が表示されます。 |
###,##0 |
0 100,000 |
整数部6桁を表します。千の位には区切り記号が表示されます。 |
数値コントロールの表示書式は、
DisplayFormatプロパティが参照する
NumberDisplayFormatオブジェクトを使って設定します。このオブジェクトの7つのプロパティにキーワードとリテラル文字列を設定することで、表示書式を作成します。
上記の各プロパティを空の文字列(""またはString.Empty)に設定すると、数値コントロールの動作は次のようになります。デフォルトでは、Digit、NegativePrefix、およびNull以外のすべてのプロパティが空の文字列に設定されています。
対象となるプロパティ |
数値コントロールの動作 |
Digit |
Formatプロパティで設定したDigitの書式が適用されます。 |
PositivePrefix |
数値の前には何も表示されません。 (通貨記号も表示されません) |
PositiveSuffix |
数値の後には何も表示されません。 |
NegativePrefix |
数値の前には何も表示されません。 (負号も通貨記号も表示されません) |
NegativeSuffix |
数値の後には何も表示されません。 |
表示書式で使用できるキーワードは以下のとおりです。なお、各キーワードは特定のプロパティでしか使用できません。各キーワードを使用できるプロパティは、下表内の「対象」に記載しています。
キーワード |
説明 |
# |
数値の桁を指定します。値が0の場合は何も表示されません。 (対象:Digit) |
0 |
数値の桁を指定します。値が0の場合は0を表示します。 (対象:Digit) |
.(ピリオド) |
小数点の表示位置を指定するプレースホルダです。実際に表示される小数点は、DecimalPointプロパティで設定します。 (対象:Digit) |
,(コンマ) |
桁区切り記号の表示位置を指定するプレースホルダです。実際に表示される桁区切り記号は、Separatorプロパティで設定します。 (対象:Digit) |
[DBNum1]G |
数値を漢数字で表示します。(例:一億二千三百四十五万六千七百八十九) (対象:Digit) |
[DBNum2]G |
数字を漢数字(大字)で表示します。(例:壱億弐阡参百四拾伍萬六阡七百八拾九) (対象:Digit) |
[DBNum3]G |
数字を漢数字と全角の数字を組み合わせて表示します。(例:1億2千3百4十5万6千7百8十9) (対象:Digit) |
[DBNum4]G |
小数点以下の数字を漢数字を使って表示します。(例:〇.九分八厘七毛六糸五忽四微三纖二沙一塵) (対象:Digit) |
$ |
通貨記号の表示位置を指定するプレースホルダです。実際に表示される通貨記号は、CurrencySymbolプロパティで設定します。 (対象:PositivePrefix、NegativePrefix) |
\ |
キーワードをリテラル文字として表示させます。 (対象:Digit以外のすべての有効なプロパティ) |
以下に、Digitプロパティで設定可能な数値書式の設定例をいくつか上げます。
書式 |
表記例 |
説明 |
##.## |
10 10.1 99.99 |
整数部2桁、少数部2桁を表します。値が 0 の時は何も表示されません。 |
#0.## |
0 10.1 99.99 |
整数部2桁、少数部2桁を表します。値が 0 の時は 0 が表示されます。 |
00 |
00 99 |
整数部2桁を表します。 値が1桁の場合には、十の位には 0 が表示されます。 |
###,##0 |
0 100,000 |
整数部6桁を表します。千の位には区切り記号が表示されます。 |
###.###[###:千] |
123千 12,345千 |
下の3桁を文字列"千"に置き換えます。 |
次のサンプルコードは、
Formatプロパティと
DisplayFormatプロパティを使って数値書式を設定する方法を示します。
' 入力書式の設定
GcNumber1.Format.Digit = "######.##"
GcNumber1.Format.PositivePrefix = "+"
GcNumber1.Format.NegativePrefix = "-"
GcNumber1.Format.PositiveSuffix = ""
GcNumber1.Format.NegativeSuffix = ""
' 表示書式の設定
GcNumber1.DisplayFormat.Digit = "###,##0.00"
GcNumber1.DisplayFormat.PositivePrefix = "$"
GcNumber1.DisplayFormat.NegativePrefix = "$-"
GcNumber1.DisplayFormat.PositiveSuffix = "(税別)"
GcNumber1.DisplayFormat.NegativeSuffix = "(税別)"
' 記号などの設定
GcNumber1.CurrencySymbol = "\"
GcNumber1.DecimalPoint = "."
GcNumber1.Separator = ","
GcNumber1.NegativeColor = Color.Red
' 入力許可範囲の設定
GcNumber1.MinValue = -99999.99D
GcNumber1.MaxValue = 99999.99D
// 入力書式の設定
GcNumber1.Format.Digit = "######.##";
GcNumber1.Format.PositivePrefix = "+";
GcNumber1.Format.NegativePrefix = "-";
GcNumber1.Format.PositiveSuffix = "";
GcNumber1.Format.NegativeSuffix = "";
// 表示書式の設定
GcNumber1.DisplayFormat.Digit = "###,##0.00";
GcNumber1.DisplayFormat.PositivePrefix = "$";
GcNumber1.DisplayFormat.NegativePrefix = "$-";
GcNumber1.DisplayFormat.PositiveSuffix = "(税別)";
GcNumber1.DisplayFormat.NegativeSuffix = "(税別)";
// 記号などの設定
GcNumber1.CurrencySymbol = "\\";
GcNumber1.DecimalPoint = '.';
GcNumber1.Separator = ',';
GcNumber1.NegativeColor = Color.Red;
// 入力許可範囲の設定
GcNumber1.MinValue = -99999.99M;
GcNumber1.MaxValue = 99999.99M;
次のサンプルコードは、上記と同じ設定をNumberFormatオブジェクトを明示的に生成することで行います。
Imports GrapeCity.Web.Input.IMNumber
' 入力書式の設定
GcNumber1.Format = New NumberFormat("######.##", "+", "-", "", "")
' 表示書式の設定
GcNumber1.DisplayFormat = New NumberDisplayFormat("###,##0.00", "$", "$-", "(税別)", "(税別)")
' 記号などの設定
GcNumber1.CurrencySymbol = "\"
GcNumber1.DecimalPoint = "."
GcNumber1.Separator = ","
GcNumber1.NegativeColor = Color.Red
' 入力許可範囲の設定
GcNumber1.MinValue = -99999.99D
GcNumber1.MaxValue = 99999.99D
using GrapeCity.Web.Input.IMNumber;
// 入力書式の設定
GcNumber1.Format = new NumberFormat("######.##", "+", "-", "", "");
// 表示書式の設定
GcNumber1.DisplayFormat = new NumberDisplayFormat("###,##0.00", "$", "$-", "(税別)", "(税別)");
// 記号などの設定
GcNumber1.CurrencySymbol = "\\";
GcNumber1.DecimalPoint = '.';
GcNumber1.Separator = ',';
GcNumber1.NegativeColor = Color.Red;
// 入力許可範囲の設定
GcNumber1.MinValue = -99999.99M;
GcNumber1.MaxValue = 99999.99M;