本文档描述了 Numeric 掩码类型,它被特殊设计用于输入数字值 (整数、浮点值、货币值、百分数等)。 特定的数字掩码依赖于当前的 culture (区域) 设置。
要获得关于其他可用掩码模式的信息,请参阅 掩码编辑器概述 文档。
在本主题中:
数字掩码模式
要启用 Numeric 掩码类型,则把 MaskProperties.MaskType 属性 (属于 RepositoryItemTextEdit.Mask 对象) 设置为 MaskType.Numeric。 此掩码自身应该通过 MaskProperties.EditMask 属性被指定。
可以使用预定义掩码或自定义掩码。 这些掩码与在 MSDN 中的 数字格式字符串 文档描述的显示格式相类似,因此编辑器的编辑掩码与显示格式可以相匹配。 在这种情况下,在编辑模式和显式模式中的编辑器取值将是相同的。 要定制编辑器的显示格式,可以使用 RepositoryItem.DisplayFormat 属性。下面列出的大多数掩码都会受到当前 culture 的影响。 例如,culture 定义了货币符号、作为千位分隔符的符号、默认的小数点右侧的数位数目等。 所有这些设置都由当前 culture 的 CultureInfo.NumberFormat 属性提供。 要定制这些设置,则在控制面板中使用“区域和语言选项”对话框。
注意 |
---|
如果编辑器的编辑值是整数类型,那么编辑器仅接收整数值。 最终用户不能输入数值的小数部分,即使是在编辑器的掩码中允许小数部分。 |
预定义的掩码
预定义的掩码允许最终用户编辑公共数字类型的数字值。 标准掩码表现为 Axx 形式的字符串,其中 A 是单个字母型字符 (掩码说明符); xx 是称为精度说明符的可选整数。 可用的掩码说明符在下表中列出。 精度说明符的范围从 0 到 99,并且控制有效位数或者小数点右侧的 0 的数目。
说明符 | 名称 | 说明 | 示例 Culture: 英语(美国) |
---|---|---|---|
c 或 C | Currency (货币) |
此掩码用于输入货币金额。 此编辑掩码包含一个可以被最终用户编辑的取值部分,以及一个不能被编辑的货币符号。 此掩码的格式由当前 culture 确定。 影响数字值如何被当前 culture 呈现的不同设置,是由当前 culture 的 CultureInfo.NumberFormat 属性提供的。
精度说明符指示所需的小数位数。 如果省略精度说明符,则使用在 NumberFormat 对象给定的默认货币精度。 |
(EditMask = "c"; EditValue = 1024.5) (EditMask = "c0"; EditValue = 20010) |
D 或 d | Decimal (十进制数) |
此掩码用于输入固定长度及可变长度的整数值。
精度说明符指示可以输入的最大数字个数。 如果精度说明符等于 0 或被省略,则输入字符串的长度不受限制。 在编辑期间,如果编辑器的取值是实数,则该值的小数部分将被舍弃。 |
(EditMask = "d"; EditValue = 1501) |
F 或 f
G 或 g |
Fixed-point (定点) |
此掩码用于编辑有固定长度小数部分的实数值。
精度说明符指示所需的小数位数。 如果省略精度说明符,则使用在 NumberFormat 对象给定的默认数值精度。 |
(EditMask = "f"; EditValue = 1024.5) |
n 或 N | Number (数值) |
此掩码用于输入实数值的整数。 千位分隔符被插入在小数点左侧的(三位的)每组之间。
精度说明符指示所需的小数位数。 如果省略精度说明符,则使用在 NumberFormat 对象给定的默认数值精度。 |
(EditMask = "n"; EditValue = 1024.5) |
P | Percent (百分数, 模式 1) |
此掩码用于输入百分数。 输入的字符串被“原样”(与 'p' 掩码相比较) 转换为数值。 因此,如果输入了字符串 "15 %",则编辑器的取值将是 15。
根据所输入数值的符号,此掩码的格式由 System.Globalization.NumberFormatInfo.PercentNegativePattern 和 System.Globalization.NumberFormatInfo.PercentPositivePattern 属性确定。 精度说明符指示所需的小数位数。 如果省略精度说明符,则使用在 NumberFormat 对象给定的默认数值精度。 |
(EditMask = "P"; EditValue = 25) |
p | Percent (百分数, 模式 2) |
此掩码用于输入百分数。 输入的字符串被转换为数值并除以 100。 计算结果被作为编辑器的取值 (与 'P' 掩码相比较)。 因此,如果输入了字符串 "15 %",则编辑器的取值将是 0.15。
根据所输入数值的符号,此掩码的格式由 System.Globalization.NumberFormatInfo.PercentNegativePattern 和 System.Globalization.NumberFormatInfo.PercentPositivePattern 属性确定。 精度说明符指示所需的小数位数。 如果省略精度说明符,则使用在 NumberFormat 对象给定的默认数值精度。 |
(EditMask = "p"; EditValue = 0.25) |
自定义掩码
如果预定义掩码不符合特定的需求,则可以使用自定义掩码。 可以使用下列字符来创建用于编辑数值的自定义掩码。
字符 | 名称 | 说明 |
---|---|---|
0 | 零占位符 | 可以在相应的位置输入十进制数字位 (0-9)。 空白占位符被以 '0' 字符表示。 当输入的字符串被转换为编辑器的取值时,数值左侧的空白被解释为 0。 |
# | 数字占位符 | 在相应的位置或左侧空白处可以输入一个十进制数字 (0-9)。 空白占位符不被显示。 当输入的字符串被转换为编辑器的取值时,数字左侧的空白不存储到结果中。 |
. | 小数点 | 格式字符串中的第一个“.”字符确定格式化的值中的小数点分隔符的位置。 用作小数分隔符的实际字符由 System.Globalization.NumberFormatInfo.NumberDecimalSeparator 属性确定。 |
, | 千位分隔符 |
如果“,”字符出现在掩码中,则千位分隔符将被插入到小数点左侧的每组数字之间,正如在 NumberFormat 对象中定义的那样。
如果掩码包含了货币符号,则每组数字的位数由 System.Globalization.NumberFormatInfo.CurrencyGroupSizes 属性确定。 表示每组分隔符的字符由 System.Globalization.NumberFormatInfo.CurrencyGroupSeparator 属性确定。 如果掩码包含了百分比符号(%),则每组数字的位数由 System.Globalization.NumberFormatInfo.PercentGroupSizes 属性确定。 表示每组分隔符的字符由 System.Globalization.NumberFormatInfo.PercentGroupSeparator 属性确定。 如果掩码不包含货币符号和百分比符号,则每组数字的位数由 System.Globalization.NumberFormatInfo.NumberGroupSizes 属性确定。 表示每组分隔符的字符由 System.Globalization.NumberFormatInfo.NumberGroupSeparator 属性确定。 |
% | 百分比占位符 |
如果“%”符号出现在掩码中,则在把输入的取值转换为编辑器的取值时,输入的取值会被除以 100。 因此,如果输入了字符串“15 %”,则编辑器的取值将是 0.15。
所用的百分比符号取决于当前的 culture。 一个适当的符号会被插入到编辑框中的特定位置,此位置与掩码中出现“%”符号的位置对应。 |
%% | 百分比占位符 |
如果“%%”字符串出现在掩码中,则在把输入的取值转换为编辑器的取值时,输入的取值不会被除以 100。 因此,如果输入了字符串“15 %”,则编辑器的取值将是 15。
所用的百分比符号取决于当前的 culture。 一个适当的符号会被插入到编辑框中的特定位置,此位置与掩码中出现“%”符号的位置对应。 |
\ | 转义符 | 跟随在转义符后面的字符会被原样插入到编辑框中。 要在编辑框中显示一个反斜杠,则掩码中必须包含“\\”字符串。 |
; | 部分分隔符 |
“;”字符用于分隔掩码中的正数和负数部分。
掩码可以包含由“;”字符定界的两个部分。 第一个部分定义输入正数的掩码,第二个部分定义输入负数的掩码。 最终用户可以通过按下“-”键来切换取值的符号。 在这种情况下,根据取值的符号,输入的取值被自动使用适当的掩码重新设置格式。 如果省略了“;”字符和负数的掩码,则编辑器将使用由 NumberFormat 对象所确定的负数的默认模式。 如果“;”字符后面跟随的是空字符串,则编辑器不允许最终用户输入负数值。 |
$ | 货币符号 | 定义由当前 culture 决定的货币符号的位置。 此符号可以通过 System.Globalization.NumberFormatInfo.CurrencySymbol 属性访问。 |
其他任意字符 | 原义字符 |
出现在掩码中的其他任意字符都被原样插入到编辑框中。
要在编辑框中按原样显示特定的字符,则应该在它们前面放置转义符(“\”)。 |
最终用户功能
- 按下“-”键改变被编辑取值的符号。 插入点可以位于编辑框内的任意位置。
- 按下向上键和向下键时,递增或递减插入点位置左侧的数字。 如果选中了全部文本,则按下这些按键时会递增或递减小数点左侧的数字。
- 滚动鼠标滑轮时,递增或递减插入点位置左侧的数字。 如果选中了全部文本,则滚动鼠标滑轮时会递增或递减小数点左侧的数字。
示例
1. 一个输入实数的掩码,其小数点左侧的最大位数是 4: #,##0.00
使用千位分隔符来分隔三位数字组。 取值的小数部分总是包含两位数字。(EditValue = 3080.6);
(EditValue = -3080.6)。
2. 正数使用相同的掩码。 负数使用双尖括号括起来:#,##0.00;<<#,##0.00>>
(EditValue = -3080.6)。