Microsoft Masked Edit Control 控件:MSMASK32.OCX 系统文件夹中找找吧,应该有的 使用 MaskedEdit 控件MaskedEdit 控件用于提示用户掩码模板输入数据。它也可用于提示输入日期、货币和时间,或者将输入的数据转换为全是大写或小写字符的字符串。例如,要提示用户输入电话号码,可以创建下面的输入模板:“(___) - ___ - ____”。如果不使用输入模板,则 MaskedEdit 控件的行为与标准文本框相似。 用 Mask 属性定义了输入模板之后,MaskedEdit 控件中的每个字符,都映射为指定类型的占位符,或文字字符。文字字符串,或称文字,给出了有关所用数据类型的可视线索。例如,括住电话号码区号的括号,就是文字字符串:(206)。 输入模板防止了用户向控件中输入非法字符。如果用户试图输入与输入模板冲突的字符,该控件将产生 ValidationError 事件。 MaskedEdit 控件是可绑定的控件,即可与数据控件共同使用以显示或更新在数据集内某个字段的值。 用途提示输入日期/时间、数字或货币信息。
提示输入自定义模板格式的数据,比如电话号码或其它有一定模板的数据。
格式化模板输入数据的显示和打印。
与数据控件共同完成对数据集中字段值的显示和更新。 Mask 属性Mask 属性决定了输入到 MaskedEdit 控件中的信息的类型。Mask 属性用占位符定义了输入的类型,这些占位符有井字符 (#)、反斜线 (\)、逗号 (,) 和与号 (&)。下表中列出了所有可用于设置 Mask 属性的字符: 模板字符描述#数字占位符。.小数点占位符。最终使用的字符是在区域设置中的小数点占位符。该字符在模板中处理为文字。,千位分隔符。最终使用的字符是在区域设置中的千位分隔符。该字符在模板中处理为文字。:时间分隔符。最终使用的字符是在区域设置中的时间分隔符。该字符在模板中处理为文字。/日期分隔符。最终使用的字符是在区域设置中的日期分隔符。该字符在模板中处理为文字。\将模板字符串中的下一个字符作为文字处理。这使模板中可以具有 '#'、'&'、'A' 和 '?' 字符。该字符在模板中处理为文字。&字符占位符。该占位符对应的有效值是 32-126 和 128-255 之间的 ANSI 字符。>将随后的所有字符转换为大写。<将随后的所有字符转换为小写。A字母数字字符占位符(必须输入)。例如:a z、A Z 或 0 9。a字母数字字符占位符(可选输入)。9数字占位符(可选输入)。例如:0 9。C字符或空格占位符(可选输入)。?字母占位符。例如:a z 或 A Z。文字所有其它符号被作为文字显示,也就是说照原样显示。
要创建输入模板,需要组合使用模板字符和文字。文字是那些不代表数据类型或格式,而是照原样显示的字符。例如,要创建输入电话号码的输入模板,可将 Mask 属性定义如下: MaskEdBox1.Mask = (###) - ### - ####井字符(数字占位符)与左右括号和连字符(文字)组合使用。在运行时,该 MaskedEdit 控件显示如下: 输入电话号码的 MaskedEdit 控件 定义了输入模板后,在输入数据或移动插入点时,插入点将自动越过文字。 Text 和 ClipText 属性控件中输入的所有数据都保存在 Text 属性中,并可从中获取数据。它是只能在运行时使用的属性,并且其中包括了输入模板中的所有文字和提示字符。比如,如果从上面示例的 Text 属性中获取数据,会返回字符串 "(555) - 555 - 5555",即输入的电话号码。 ClipText 也返回 MaskedEdit 控件中输入的数据,但其中不包括文字和提示字符。在上面的示例中,如果从 ClipText 属性中获取数据,会返回字符串 "5555555555"。ClipText 属性只能在运行时使用。 定义输入字符按照缺省规定,所有掩码字符是有下划线的。这就告诉了用户该字符是要输入数据的占位符。用户输入有效字符后,下划线就消失了。如果希望保留下划线,可将 MaskedEdit 控件的 FontUnderline 属性设置为 True。 甚至可以通过使用 PromptChar 属性,把下划线输入字符改为其它字符。例如,把下划线 (_) 改为星号 (*),只需将 PromptChar 属性重新定义为: MaskEdBox1.PromptChar = "*"将掩码字符用作文字如果需要把掩码字符作为文字处理,可在模板字符之前加上反斜线 (\)。例如,如果希望显示井号 (#),可将模板字符串设置如下: MaskEdBox1.Mask = "\##"这样做将产生一个输入模板,在该输入模板中将显示一个井号 (#),在井号之后是用于输入数字的空格。 Format 属性使用 Format 属性,可以修改 MaskedEdit 控件的显示和打印。Format 属性提供了显示数字、货币和日期/时间信息的标准格式。 下表中列出了可用于 Format 属性的标准格式: 数据类型值描述数字(缺省)空字符串普通数字格式。按照输入格式显示。数字$#,##0.00;($#,##0.00)货币格式。使用千位分隔符,负数显示在括号中。数字0固定数字格式。至少显示一位数字。数字#,##0逗号格式。把逗号作为千位分隔符。数字0%百分数格式。将值乘上 100,并附加一个百分号。数字0.00E+00科学计数法格式。使用标准科学计数表示法。日期/时间(缺省)c普通日期和时间格式。显示日期、时间或两者同时显示。日期/时间dddddd长日期格式。与 Microsoft Windows “控制面板”的“区域设置”中的长日期设置相同。比如:Tuesday, May 26, 1992。日期/时间dd-mmm-yy中日期格式。比如:26-May-92。日期/时间ddddd短日期格式。与 Microsoft Windows “控制面板”的“区域设置”中的短日期设置相同。比如:5/26/92。日期/时间ttttt长时间格式。与 Microsoft Windows “控制面板”的“区域设置”中的长时间设置相同。比如:05:36:17 A.M。日期/时间hh:mm A.M./P.M.中时间格式。比如:05:36 A.M。日期/时间hh:mm短时间格式。比如:05:36。
可以同时使用 Format 属性和 Mask 属性。比如,要创建以短日期格式提示输入,而以长日期格式显示的模板,可以将 Mask 和 Format 属性设置如下: MaskEdBox1.Mask = "##-##-##"MaskEdBox1.Format = "dddddd"当用户以短格式输入日期(比如 06-27-96)后,MaskedEdit 控件验证输入的数据是否有效,然后当输入焦点转到下一控件中时,它将被显示为 "Thursday, June 27, 1996"。 注意 要在数据验证有效后自动将输入焦点转移到下一控件,可将 MaskedEdit 控件的 AutoTab 属性设置为 True。 使用 Format 属性,还可以用与 Visual Basic 的 Format 函数一样定义的格式表达式,指定自定义的格式。 详细信息 请参阅 “Format 函数”或“Format 属性(MaskedEdit 控件)”。 在设计时设置属性在设计时,可用 MaskedEdit 控件的“属性页”设置属性的值。在 MaskedEdit 控件的“属性”窗口中单击“自定义”选项,以弹出“属性页”对话框,如下所示: 在设计时设置 Mask 属性 在该对话框中,可以象在上面的示例运行时那样,设置输入模板和格式模板。“格式”下拉列表可用来选取任何预定义的标准格式。通过该对话框还能够轻而易举地设置 PromptChar、ClipMode 和 MaxLength 等属性。 一个 MaskedEdit 字段中最多可有 64 个字符(有效范围是 1 至 64 个字符)。其中包括了文字以及模板字符。可用 MaxLength 属性设置该值。在设计时,该属性在键入输入模板时,会被自动设置为模板中的字符数。 ClipMode 属性确定在执行剪贴和复制命令时,是否包括文字。按照缺省规定,当 MaskedEdit 控件中选定的部分被复制到剪贴板中时,选中的整个内容,包括文字均被传输。要将复制操作的对象限制为用户输入的数据,可将 ClipMode 属性设置为 True。 ValidationError 事件当 MaskedEdit 控件收到由输入模板确定的非法输入值时,将产生 ValidationError 事件。例如,如果定义了提示输入数字的输入模板,那么当用户试图键入字母时将产生 ValidationError 事件。除非自己编写了响应 ValidationError 事件的事件处理程序,MaskedEdit 控件将仅仅把当前插入点保留在原地,就如同什么也没有发生一样。 模板字符在输入时将被检验,并将插入点向右移动。输入或删除字符时(比如说,输入电话号码后再输入或删除一个数字),所有的非文字字符将向右或向左移动。在移动时,如果非法字符替代了原来合法字符的位置,将会触发 ValidationError 事件。 例如,假如 Mask 属性被定义为 "?###",而 Text 属性的当前值为“A12”。如果试图在字母“A”之前插入字母“B”,则“A”将向右移动。由于输入模板的第二个值需要的是数字,所以字母“A”将使该控件产生 ValidationError 事件。 MaskedEdit 控件在运行时,同样也要检验 Text 属性的值。如果 Text 属性的设置与输入模板冲突,该控件将产生运行时错误。 可用与标准文本框控件中相同的方法选取文本。如果删除选中的文本,则该控件将试图移动选中文本右侧余下的字符。然而,任何在移动过程中能够导致检验出错的剩余字符将被删除掉,并且不会产生 ValidationError 事件。 详细信息 请参阅 “ValidationError 事件”。 将 MaskedEdit 用作绑定的控件MaskedEdit 控件是可绑定的控件。也就是说它可以与数据控件相关联,并显示数据集的当前记录中的字段值。MaskedEdit 控件还能够将值写入数据集。 注意 在读取由 DataField 属性引用的字段值时,只要有可能,它就被转换为 Text 属性字符串。如果该记录集是可被更新的,则该字符串在更新时将被转换为该字段的数据类型。 MaskedEdit 控件有三个被绑定的属性:DataChanged、DataField,以及 DataSource。 详细信息 关于使用被绑定属性的详细信息,请参阅《Visual Basic程序员指南》中“利用 Visual Basic's 标准控件”里的“利用 ADO Data 控件”。 |