添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
public ref class MaskedTextBox : System::Windows::Forms::TextBoxBase
[System.ComponentModel.DefaultBindingProperty("Text")]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
public class MaskedTextBox : System.Windows.Forms.TextBoxBase
[System.ComponentModel.DefaultBindingProperty("Text")]
public class MaskedTextBox : System.Windows.Forms.TextBoxBase
[<System.ComponentModel.DefaultBindingProperty("Text")>]
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MaskedTextBox = class
    inherit TextBoxBase
[<System.ComponentModel.DefaultBindingProperty("Text")>]
type MaskedTextBox = class
    inherit TextBoxBase
Public Class MaskedTextBox
Inherits TextBoxBase
MaskedTextBox

下面的代码示例初始化 MaskedTextBox 以接受日期,并使用 MaskInputRejected TypeValidationCompleted 事件提醒用户输入无效。

private void Form1_Load(object sender, EventArgs e) maskedTextBox1.Mask = "00/00/0000"; maskedTextBox1.MaskInputRejected += new MaskInputRejectedEventHandler(maskedTextBox1_MaskInputRejected); maskedTextBox1.KeyDown += new KeyEventHandler(maskedTextBox1_KeyDown); void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e) if (maskedTextBox1.MaskFull) toolTip1.ToolTipTitle = "Input Rejected - Too Much Data"; toolTip1.Show("You cannot enter any more data into the date field. Delete some characters in order to insert more data.", maskedTextBox1, 0, -20, 5000); else if (e.Position == maskedTextBox1.Mask.Length) toolTip1.ToolTipTitle = "Input Rejected - End of Field"; toolTip1.Show("You cannot add extra characters to the end of this date field.", maskedTextBox1, 0, -20, 5000); toolTip1.ToolTipTitle = "Input Rejected"; toolTip1.Show("You can only add numeric characters (0-9) into this date field.", maskedTextBox1, 0, -20, 5000); void maskedTextBox1_KeyDown(object sender, KeyEventArgs e) // The balloon tip is visible for five seconds; if the user types any data before it disappears, collapse it ourselves. toolTip1.Hide(maskedTextBox1); Private Sub MaskedTextBox1_MaskInputRejected(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MaskInputRejectedEventArgs) Handles MaskedTextBox1.MaskInputRejected If (Me.MaskedTextBox1.MaskFull) Then ToolTip1.ToolTipTitle = "Input Rejected - Too Much Data" ToolTip1.Show("You cannot enter any more data into the date field. Delete some characters in order to insert more data.", Me.MaskedTextBox1, Me.MaskedTextBox1.Location.X, Me.MaskedTextBox1.Location.Y, 5000) ElseIf (e.Position = Me.MaskedTextBox1.Mask.Length) Then ToolTip1.ToolTipTitle = "Input Rejected - End of Field" ToolTip1.Show("You cannot add extra characters to the end of this date field.", Me.MaskedTextBox1, 0, -20, 5000) ToolTip1.ToolTipTitle = "Input Rejected" ToolTip1.Show("You can only add numeric characters (0-9) into this date field.", Me.MaskedTextBox1, 0, -20, 5000) End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ToolTip1.IsBalloon = True Me.MaskedTextBox1.Mask = "00/00/0000" End Sub Private Sub MaskedTextBox1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles MaskedTextBox1.KeyDown ' The balloon tip is visible for five seconds; if the user types any data before it disappears, collapse it ourselves. Me.ToolTip1.Hide(Me.MaskedTextBox1) End Sub

MaskedTextBox 是一个增强控件 TextBox ,支持用于接受或拒绝用户输入的声明性语法。 Mask 使用 属性,可以指定以下输入,而无需在应用程序中编写任何自定义验证逻辑:

  • 所需的输入字符。

  • 可选输入字符。

  • 掩码中给定位置处预期的输入类型;例如,数字、字母或字母数字字符。

  • 掩码文本或应直接显示在 中的 MaskedTextBox 字符;例如,电话号码中的连字符 () ,或价格中的货币符号。

  • 输入字符的特殊处理;例如,将字母字符转换为大写。

    MaskedTextBox 当控件在运行时显示时,它将掩码表示为一系列提示字符和可选文本字符。 每个可编辑掩码位置(表示必需或可选输入)都以单个提示字符显示。 例如,数字符号 (#) 通常用作数字字符输入的占位符。 可以使用 PromptChar 属性指定自定义提示字符。 属性 HidePromptOnLeave 确定控件失去输入焦点时用户是否看到提示字符。

    当用户在掩码文本框中键入输入时,有效的输入字符将按顺序替换其各自的提示字符。 如果用户键入无效的输入字符,则不会进行替换,但如果 属性设置为 true ,则会发出 BeepOnError 蜂鸣声,并 MaskInputRejected 引发 事件。 可以通过处理此事件来提供自己的自定义错误逻辑。

    当当前插入点位于文本字符处时,用户有许多选项:

  • 如果键入提示字符以外的字符,则文本将自动跳过,并且输入字符将应用于下一个可编辑的位置,由下一个提示字符表示。

  • 如果键入提示字符且 AllowPromptAsInput 属性为 true,则输入将覆盖提示字符,并且插入点将移动到掩码中的下一个位置。

  • 与往常一样,箭头键可用于导航到上一个或后续位置。

    可以使用 MaskFull 属性来验证用户是否已输入所有必需的输入。 属性 Text 将始终检索根据掩码和 TextMaskFormat 属性设置格式的用户输入。

    控件 MaskedTextBox 实际上将所有掩码处理延迟到 System.ComponentModel.MaskedTextProvider 属性 MaskedTextProvider 指定的类。 此标准提供程序支持除代理项和垂直组合字符之外的所有 Unicode 字符;但是, AsciiOnly 属性可用于将输入限制为字符集 a-z、A-Z 和 0-9。

    掩码不一定保证用户的输入表示给定类型的有效值;例如,可以为年限输入 -9。 可以通过将该值类型的 ValidatingType 实例分配给 属性来验证用户的输入是否表示有效值。 可以通过监视 TypeValidationCompleted 事件来检测用户是否在 MaskedTextBox 包含无效值时删除焦点。 如果类型验证成功,则表示值的对象将通过 参数的 TypeValidationEventArgs 属性提供 ReturnValue

    与 控件一 TextBox 样,一些常见的键盘快捷方式不适用于 MaskedTextBox 。 具体而言,ctrl-R (右对齐文本) ,CTRL-L (左对齐文本) ,ctrl-L (居中文本) 不起作用。

    与 Visual Basic 6.0 的兼容性

    MaskedTextBox 旨在保留 Visual Basic 6.0 中掩码编辑控件的大部分功能。 下表列出了掩码编辑控件上的常见属性,并在 上 MaskedTextBox 提供它们的等效属性。

    Visual Basic 6.0) 属性 (屏蔽的编辑控件 等效 MaskedTextBox (.NET Framework) 属性
  •