Ir para conteúdo
Fórum Script Brasil
  • 0

Máscara


alexandremanowar

Pergunta

Olá pessoal

Eu gostaria de saber como fazer com que um TextBox fique com uma máscara de entrada tipo assim para digitar data o TextBox faça a divisão automática dessa forma 99/99/9999 ou seja o usuário vai digitando e o espaço entre as barras vão sendo preenchidos, ou vou digitar um cep e a divisão já esteja lá automáticamente.

Como eu posso fazer isso?

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Cara eu li os tutorias relacionados ao assunto, mas não ficou muito claro, por exemplo resumindo o que eu quero é seguinte que que quando o meu formulário for carregado o campo TextBox fique com um tipo de máscara igual no access ou seja ele vai ficar assim __/__/____ apenas para dar uma aprencia nos dados. Nos post que eu pesquisei o cara mandou usar isso: \d{2}\/\d{2}\/\d{4}

Tentei usar isso em tudo que é propriedade mas não consegui. Onde exatamente eu usaria isso? E como eu uso?

Um amigo me passou um código parecido em c#, estou tentando passar ele para vb.net, mas não está funcionando também, o código em c# é assim:

/// <summary>
/// formata um valor sobre uma mascara
/// </summary>
/// <param name="valor">valor a formatar</param>
/// <param name="mascara">no formato ex.:##/##/#### ou ##.###,##</param>
/// <returns>valor formatado</returns>
public static string Formatar( string valor, string mascara ) 
{
System.Text.StringBuilder dado = new System.Text.StringBuilder(); 
// remove caracteres não numericos
foreach ( char c in valor ) 
{
if ( Char.IsNumber© )
dado.Append©;
}
int indMascara = mascara.Length;
int indCampo = dado.Length;
for (; indCampo > 0 && indMascara > 0; )
{
if ( mascara[--indMascara] == '#' )
indCampo--;
}
System.Text.StringBuilder saida = new System.Text.StringBuilder();
for (; indMascara < mascara.Length; indMascara++) 
{ 
saida.Append( ( mascara[indMascara] == '#' ) ? dado[indCampo++] : mascara[indMascara] );
} 
return saida.ToString();
}

O que eu estou convertendo é esse:
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ' <summary>
        ' formata um valor sobre uma mascara
        ' </summary>
        ' <param name="valor">valor a formatar</param>
        ' <param name="mascara">no formato ex.:##/##/#### ou ##.###,##</param>
        ' <returns>valor formatado</returns>
    Public Shared Function Formatar(ByVal valor As String, ByVal mascara As String) As String
        Dim dado As System.Text.StringBuilder = New System.Text.StringBuilder
        ' remove caracteres não numericos
        For Each c As Char In valor
            If Char.IsNumber Then
                dado.Append()
            End If
        Next
        Dim indMascara As Integer = mascara.Length
        Dim indCampo As Integer = dado.Length

        Do While ((indCampo > 0) _
                    AndAlso (indMascara > 0))
            If (mascara(--, indMascara) = Microsoft.VisualBasic.ChrW(35)) Then
                indCampo = (indCampo - 1)
            End If

        Loop
        Dim saida As System.Text.StringBuilder = New System.Text.StringBuilder

        Do While (indMascara < mascara.Length)
            saida.Append((mascara(indMascara) = Microsoft.VisualBasic.ChrW(35)))
            'TODO: Warning!!!, inline IF is not supported ?
            indMascara = (indMascara + 1)
        Loop
        Return saida.ToString
    End Function


    End Sub
End Class

Tenho que fazer algo antes? Está faltando algo?Tem problema declarar direto no formulário?Estou sem idéias

Alguém consegue arrumar, não estou conseguindo.

Estou trabalhando com WinForm. Talvez seja por isso que não estou conseguindo acho que o cara está usando WebForm.

Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

  • 0

Cara instalei o input32X, tentei estudar o artigo mas está em inglês, não manjo de inglês. Como eu faço para usar esse input32X, eu estava lendo e achei a opção de mascara no site mas não consegui fazer nada com ele.

Você sabe como usar? Pode me ajudar? Estou precisando fazer essa mascara no TexBox no winform

Link para o comentário
Compartilhar em outros sites

  • 0
Cara instalei o input32X, tentei estudar o artigo mas está em inglês, não manjo de inglês. Como eu faço para usar esse input32X, eu estava lendo e achei a opção de mascara no site mas não consegui fazer nada com ele.

Você sabe como usar? Pode me ajudar? Estou precisando fazer essa mascara no TexBox no winform

Você não precisa definir uma máscara... a DateBox existe justamente para isso. Dê uma olhada neste exemplo (criado no VS 2003): http://www.gs.kitbr.com/stuff/ExemploInput32X.zip

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Cara baixei o exemplo, mas ele só tem um formulário vazio, não achei nada.

quando eu executei ele deu essa mensagem

An unhandled exception of type 'System.InvalidOperationException' occurred in system.windows.forms.dll

Additional information: Não é possível obter o identificador de janela do controle 'AxDateBox'. Não há suporte para controles ActiveX sem janelas.

Vê se eu estou trabalhando certo, instalei o input32X na minha máquina.

ele criou uma pasta input32X edit control, dentro tem um help. Estou olhando o help, mas nada me ensina como colocar o efeito no meu TextBox, no casa eu preciso usar o DateBox, já fiz assim:

TextBox.DateBox

TextBox.DateBox(//)

E várias outras maneiras, mas não está funcionado, estou olhando o tutorial mas não acho nada de como usar isso no vb.net. O seu exemplo só tem um formulário vazio.

Como eu faço? Como eu junto o input32X com o TextBox do WinForm?

Link para o comentário
Compartilhar em outros sites

  • 0
Cara baixei o exemplo, mas ele só tem um formulário vazio, não achei nada.

quando eu executei ele deu essa mensagem

An unhandled exception of type 'System.InvalidOperationException' occurred in system.windows.forms.dll

Additional information: Não é possível obter o identificador de janela do controle 'AxDateBox'. Não há suporte para controles ActiveX sem janelas.

Vê se eu estou trabalhando certo, instalei o input32X na minha máquina.

ele criou uma pasta input32X edit control, dentro tem um help. Estou olhando o help, mas nada me ensina como colocar o efeito no meu TextBox, no casa eu preciso usar o DateBox, já fiz assim:

TextBox.DateBox

TextBox.DateBox(//)

E várias outras maneiras, mas não está funcionado, estou olhando o tutorial mas não acho nada de como usar isso no vb.net. O seu exemplo só tem um formulário vazio.

Como eu faço? Como eu junto o input32X com o TextBox do WinForm?

Você não junta... você adiciona os controles do Input32X aos componentes e depois coloca eles no form, igual você colocaria uma textbox ou qualquer outro. Clique com o botão direito em qualquer um dos componentes que podem ser inseridos em um form (textbox, por exemplo) e escolha "Customize toolbox...". Na janela que surgir, em "COM Components", marque os componentes que começam com "Input32X.". Depois de dar OK na janela você verá que eles estarão disponíveis para serem inseridos no form.

Sacou? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Cara consegui adicionar as opções do input32X, mas a opção não é Customize toolbox, o nome é ADD/Remove Items, agora as opções já estão na ToolBox, cliquei na opção DateBox e coloquei ela no formulário, mas ele está dando erro com essa mensagem:

Clique aqui p/ ver

Porém eu resolvi o problema usando a opção Mask Edit

criou a máscara do mesmo jeito e o melhor é que é um componente do próprio windows. eu tava tentando arrumar o input32X e achei essa opção na guia COM Components, testei criei formato e rodou. Mas eu gostaria ainda de aprender a usar o input e se possível saber qual seria a diferença entre o mask edit e o inout32X

Acho que tem que adicionar algum outro componente mas não estou achando tentei alguns deu até pau na minha máquina.

Como Faço para corrigir esse erro?

Link para o comentário
Compartilhar em outros sites

  • 0

Cara consegui adicionar as opções do input32X, mas a opção não é Customize toolbox, o nome é ADD/Remove Items

Aqui não... veja: http://www.gs.kitbr.com/stuff/img1.jpg

E aqui funciona direitinho: http://www.gs.kitbr.com/stuff/img2.jpg

Mas, experimente então pedir a versão .NET do Input32X no site do criador (http://www.eoliv.com/). Esta versão *não* está disponível para download e deve ser requisitada via e-mail. *Não* é essa que estou utilizando, mas talvez você consiga utilizá-la melhor.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...