Visual Studio 2010 Limitar la entrada de un TextBox sólo a números

Publicado: noviembre 16, 2010 en Desarrollo TI, WebDevelopement
Etiquetas:, ,

En este artículo veremos dos ejemplos para limitar la entrada de un TextBox sólo a números, teniendo en cuenta el separador decimal del PC huésped

La manera más simple para limitar la entrada en un textbox la veremos a continuación:

  • Abre un nuevo proyecto Windows Forms
  • En el formulario agrega:
    • Un textbox
    • Una etiqueta
    • Un botón

Luego pega este condigo:

Public Class Form1
  Dim Sep As Char
  Dim Número As Double

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Número = CDbl(TextBox1.Text)
    Etiqueta1.Text = Número
  End Sub

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'Detectar el separador decimal de la aplicación.
    Sep = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator
    TextBox1.Focus()
  End Sub

  Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    If Not (Char.IsNumber(e.KeyChar) Or e.KeyChar.Equals(Sep) Or Char.IsControl(e.KeyChar)) Then e.Handled = True
  End Sub
End Class
comentarios
  1. Jorge Mariscal dice:

    Muy buena aunque hay un fallo:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Número = CDbl(TextBox1.Text)
    *Etiqueta1*.Text = Número
    End Sub

    Como no se le ha cambiado el nombre a la etiqueta que hemos insertado el codigo correcto deberia ser:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Número = CDbl(TextBox1.Text)
    Label1.Text = Número
    End Sub

  2. jorge dice:

    ESTA MUY BUENO PARA AQUELLOS COMO YO QUE ESTAMOS INICIANDO CON VISUAL STUDIO 2010, ESPERO MAS APORTES ME GUSTARIA UN MANUAL PARA APRENDER MAS.
    SOBRE TRABAJAR CON CONDICIONALES.
    george.en@hotmail.com

  3. anarquia dice:

    el probrema estaba que nuestro amigo cambio el Label1 ( controlado en el name: (Etiqueta1…)
    nada que estedes no puedan soluccionar…
    ak esta bien…. solo arrastrelo el label1 y no modifiquen nada .. y copiar el codigo…

    Public Class Form1

    Dim Sep As Char
    Dim Número As Double

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Número = CDbl(TextBox1.Text)
    Label1.Text = Número
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ‘Detectar el separador decimal de la aplicación.
    Sep = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator
    TextBox1.Focus()
    End Sub

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

    esta muy bueno amigo gracia ……….

  4. Saul dice:

    Me agradó tu explicación. Ahora solo me queda la inquietud de como evitar que el separador decimal se pueda escribir mas de una vez en este textbox.
    Gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s