none
Vários TextBox somente números. RRS feed

  • Pergunta

  • Boa noite pessoal, preciso da ajuda de vocês!

    É o seguinte:

    Uso este código para limitar a digitação no TextBox em somente números:

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If Not (Char.IsDigit(e.KeyChar) OrElse Char.IsControl(e.KeyChar)) Then
            e.Handled = True
        End If
    End Sub

    O problema é que tenho 32 TextBox no form e preciso limitar todos em somente números!

    Tem como limitar todos com somente 1 código?

    Desde já agradeço pela atenção.

    terça-feira, 13 de maio de 2014 00:22

Respostas

  • você pode sair chamando os mesmo textbox nessa sub

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress, textbox2.keypress, textbox3.keypress
        If Not (Char.IsDigit(e.KeyChar) OrElse Char.IsControl(e.KeyChar)) Then
            e.Handled = True
        End If
    End Sub

    ou se preferir vc pode cria como sub e adicinar manualmente no onload

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Not (Char.IsDigit(e.KeyChar) OrElse Char.IsControl(e.KeyChar)) Then
            e.Handled = True
        End If
    End Sub
    
    Private Sub frm_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    
    'nome do controle e evento,              nome da sub
    
    AddHandler textbox1.KeyPress, AddressOf textbox1_keypress
    AddHandler textbox2.KeyPress, AddressOf textbox1_keypress
    AddHandler textbox3.KeyPress, AddressOf textbox1_keypress
    end sub


    Jonnathan Venancio

    jonnathanvb@outlook.com

    Whatsapp = +5511985149715


    • Editado Jonnathanvb terça-feira, 13 de maio de 2014 14:47
    • Marcado como Resposta McJota quarta-feira, 14 de maio de 2014 01:14
    terça-feira, 13 de maio de 2014 14:46

Todas as Respostas

  • Boa noite, 

    Umas das opções é utilizar um Masked Text Box, criando uma máscara apenas para numéricos.

    Um vídeo de exemplo: 

    http://www.youtube.com/watch?v=V1r25KaMLQI

    E um tutorial em texto: http://www.macoratti.net/11/02/vbn_msk1.htm

    Exemplo de máscara:

     Me.MeuMasKedTextBox.Mask = "00" // Permite dois números


    Ou pode criar seu próprio componente, herdando o input box 

    http://www.macoratti.net/vbn_her.htm

    http://msdn.microsoft.com/pt-br/library/w2a8y03d(v=vs.110).aspx

    Abraço

    terça-feira, 13 de maio de 2014 03:39
  • você pode sair chamando os mesmo textbox nessa sub

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress, textbox2.keypress, textbox3.keypress
        If Not (Char.IsDigit(e.KeyChar) OrElse Char.IsControl(e.KeyChar)) Then
            e.Handled = True
        End If
    End Sub

    ou se preferir vc pode cria como sub e adicinar manualmente no onload

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Not (Char.IsDigit(e.KeyChar) OrElse Char.IsControl(e.KeyChar)) Then
            e.Handled = True
        End If
    End Sub
    
    Private Sub frm_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    
    'nome do controle e evento,              nome da sub
    
    AddHandler textbox1.KeyPress, AddressOf textbox1_keypress
    AddHandler textbox2.KeyPress, AddressOf textbox1_keypress
    AddHandler textbox3.KeyPress, AddressOf textbox1_keypress
    end sub


    Jonnathan Venancio

    jonnathanvb@outlook.com

    Whatsapp = +5511985149715


    • Editado Jonnathanvb terça-feira, 13 de maio de 2014 14:47
    • Marcado como Resposta McJota quarta-feira, 14 de maio de 2014 01:14
    terça-feira, 13 de maio de 2014 14:46
  • Obrigado a todos pelas respostas.

    Problema resolvido!!

    Abraços.....

    quarta-feira, 14 de maio de 2014 01:15