Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Classe MaskedTextBox

Usa uma máscara para distinguir entre entrada de usuário adequada e impróprio.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
[ComVisibleAttribute(true)]
[DefaultBindingPropertyAttribute("Text")]
public class MaskedTextBox : TextBoxBase

A classe MaskedTextBox é um controle TextBox aprimorado que oferece suporte a uma sintaxe declarativa para aceitar ou rejeitar a entrada do usuário. Usando o Mask propriedade, você pode especificar a seguinte entrada sem escrever qualquer lógica de validação personalizada em seu aplicativo:

  • Caracteres de entrada necessárias.

  • Caracteres de entrada opcionais.

  • O tipo de entrada esperado em uma posição determinada na máscara; por exemplo, um dígito ou um caractere alfabético ou alfanumérico.

  • Literais de máscara ou caracteres que devem ser exibido diretamente no MaskedTextBox; Por exemplo, os hifens (-) em um número de telefone ou o símbolo da moeda em um preço.

  • Especial de processamento de caracteres de entrada; por exemplo, para converter caracteres alfabéticos em maiúsculas.

Quando um controle MaskedTextBox é exibido em tempo de execução, ele representa a máscara como uma série de caracteres de prompt e caracteres literais opcionais. Cada posição de máscara editáveis, que representa uma entrada obrigatória ou opcional, é mostrada com um único caractere de aviso. Por exemplo, o sinal numérico (#) é geralmente usado sistema autônomo um espaço reservado para uma entrada de caractere numérico. Você pode usar a propriedade PromptChar para especificar um caractere de prompt personalizado. The HidePromptOnLeave propriedade determina se o usuário vê caracteres aviso quando o controle perde o foco de entrada.

sistema autônomo usuário sistema autônomo tipos de entrada na caixa de texto mascarada, caracteres de entrada válido substituem seus respectivos caracteres de aviso de forma seqüencial. Se o usuário digita um caractere de entrada inválido, nenhuma substituição ocorre, mas em vez disso, um aviso sonoro é emitido se o BeepOnError propriedade é conjunto para truee o MaskInputRejected evento é gerado. Você pode fornecer sua própria lógica de erro personalizada, este evento de envio.

Quando o ponto de inserção corrente está em um caractere literal, o usuário terá várias opções:

  • Se um caractere que não seja o caractere de aviso é digitado, o literal automaticamente será ignorado e o caractere de entrada será aplicado a próxima posição de editável, representado pelo próximo caractere de aviso.

  • Se o caractere de aviso for digitado e o AllowPromptAsInput propriedade for true, a entrada será sobrescrever o caractere de aviso e inserção ponto será movido para a próxima posição na máscara.

  • sistema autônomo é sempre o caso, sistema autônomo teclas de seta podem ser usadas para navegar até uma posição anterior ou posterior.

Você pode usar o MaskFull propriedade para verificar se o usuário inseriu todas a entrada necessária. The Text propriedade sempre irá recuperar a entrada do usuário formatada de acordo com a máscara e o TextMaskFormat propriedade.

The MaskedTextBox controle realmente adia todo o processamento de máscara para o System.ComponentModel.MaskedTextProvider classe especificada pela MaskedTextProvider propriedade. Este provedor padrão oferece suporte a todos os caracteres Unicode, exceto para substitutos e caracteres combinados verticalmente; no entanto, a AsciiOnly propriedade pode ser usada para restringir a entrada a caracteres conjuntos de a-z, A-Z e 0-9.

Máscaras de não garante necessariamente que uma entrada de usuário representarão um valor válido para um determinado tipo; por exemplo, 9 pode ser inserido para uma idade em anos. Você pode verificar que uma entrada de usuário representa um valor válido, atribuindo uma instância do tipo do valor de ValidatingType propriedade. Você pode detectar se o usuário remove foco de MaskedTextBox Quando ele contém um valor inválido, monitorando para o TypeValidationCompleted evento. Se a validação de tipo for bem-sucedida, o objeto que representa o valor estará disponível através de ReturnValue propriedade das TypeValidationEventArgs parâmetro.

sistema autônomo ocorre com o TextBox controle, vários atalhos de teclado comum não funcionam com MaskedTextBox. Em particular, CTRL-R (à direita justificar o texto), CTRL-L (esquerda justificar texto), e CTRL-L (centralizar o texto) não terão efeito.

Compatibilidade com o Visual Basic 6.0

MaskedTextBox foi projetado para manter a maioria das funcionalidades da máscara controle de edição em Visual Basic 6.0. A tabela a seguir lista propriedades comuns no controle Masked edição e fornece seus equivalentes no MaskedTextBox.

Controle de edição mascarado (Visual Basic propriedade 6.0)

MaskedTextBox equivalente (.NET Framework) propriedade

Propriedade AllowPrompt

AllowPromptAsInput

Propriedade AutoTab

Nenhum

Propriedade ClipMode

CutCopyMaskFormat

Propriedade ClipText

Text (quando TextMaskFormat é definido como ExcludePromptAndLiterals)

Propriedade Format

Nenhum

Propriedade FormattedText

Text (quando TextMaskFormat é definido como IncludePromptAndLiterals)

Propriedade Mask

Mask

Propriedade PromptChar

PromptChar

Propriedade PromptInclude

ResetOnPrompt

Evento ValidationError

MaskInputRejected

Observação de cuidado Cuidado:

O MaskedTextBox controle não suporta a funcionalidade de configuração ou desfazer várias linhas. No entanto, enquanto os membros associados a esses recursos tiver sido mantido para compatibilidade com o TextBoxBase classe base, suas implementações não executam nenhuma ação.

O exemplo de código a seguir inicializa a MaskedTextBox para aceitar uma data e usa os eventos MaskInputRejected e TypeValidationCompleted para alertar o usuário para entrada inválida.

privatevoid 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);
    }
    elseif (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);
    }
    else
    {
        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);
}


Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0
Isso foi útil para você?
(1500 caracteres restantes)
Conteúdo da Comunidade Adicionar