Hola: acá les dejo un ejemplo muy sencillo para evaluar las teclas presionadas cuando se ingresan datos en un textbox y solo permitir los números ignorando todo lo que no sea un número. Es muy básico pero les servirá de punto de partida para validar cualquier ingreso. A continuación el código….
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If (Not Char.IsNumber(e.KeyChar) And e.KeyChar <> Microsoft.VisualBasic.ChrW(8)) Then e.Handled = True End If End Sub
El tipo char tiene varias propiedades que nos resultarían muy útiles a la hora de realizar validaciones. En el ejemplo vemos la propiedad .IsNumber… aca algunas más para recordar:
IsControl: Indica si el caracter unicode especificado se clasifica por categorias como un caracter de Control
IsDigit: Indica si el caracter unicode especificado se clasifica por categorias como un Dígito Decimal
IsLetter: Indica si el caracter unicode especificado se clasifica por categorias como un caracter alfabético
IsLetterOrDigit: Indica si el caracter unicode especificado se clasifica por categorias como un caracter alfabético o un Dígito Decimal
y hay muchas más… les dejo un consejo sano… siempre consulten la ayuda.
ehemp..leh nnya gg !!
klow bwt aplikasi parkir,menentukan harga masuk dan harga keluarnya gmna ?
low bzamah sklian kch contoh aplikasi parikir!!
hha…!!!
tolong pzn!!!ea…!!!
low twu kirimin k e-mail aku ea!!!
thank’s!!!!
Hola
Sabes que recién estoy empezando en vb y me están enseñado vn.net 2008, y quiero hacer un tipo de calculadora básica no tan compleja pero necesito validar los texbox (Solo Números), en el código que tu expones me da problema con el lt ya que no esta declara, me imagino que después me dará problema gt, como los declaro para que funcione.
Gracias de antemano..
Mira los caracteres “<” y “>” no son de VB .NET, son de HTML y deberían aparecer como “” respectivamente. Así la intrucción quedaría:
If (Not Char.IsNumber(e.KeyChar) And e.KeyChar Microsoft.VisualBasic.ChrW(8)) Then
se que la pregunta es viejita pero pensé en futuros visitantes xD.
hola, buenas
Necesito hacer un tabajo practico, y tengo un textbox, y tengo que validar si es un número o un texto. Por ejemplo si tengo que ingresar el DNI, tengo que verificar que sea numero, y no se como hacerlo, si alguien me podria ayudar, muchas gracias.
Espero te sirva.
Te valida nuemros enteros o decimales, le puedes decir hasta cuantos decimales te acepte y cual sera el simbolo del decimal punto o coma, dependiendo el pais.
Public Sub ValidaNumero(ByVal e As System.Windows.Forms.KeyPressEventArgs, _
ByVal oText As TextBox, _
Optional ByVal pbConPuntoDec As Boolean = True, _
Optional ByVal pnNumDecimal As Integer = 2, _
Optional ByVal psSimbolo As String = “.”)
Dim nDig As Integer
Dim nCount, esDecimal, NumDecimales As Integer
Dim esDec As Boolean
Dim sTexto As String = String.Concat(oText.Text, e.KeyChar)
If Asc(e.KeyChar) = Keys.Back Or Asc(e.KeyChar) = Keys.Return Then
e.Handled = False
Exit Sub
End If
If pbConPuntoDec Then
If e.KeyChar.IsDigit(e.KeyChar) Or e.KeyChar = psSimbolo Then
e.Handled = False
ElseIf e.KeyChar.IsControl(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
nDig = sTexto.Length
If nDig = 1 And e.KeyChar = psSimbolo Then
e.Handled = True
End If
If oText.SelectedText “” Then
If e.KeyChar = psSimbolo Then
e.Handled = True
End If
Else
If sTexto.IndexOf(psSimbolo) >= 0 And (nDig – (sTexto.IndexOf(psSimbolo) + 1)) > pnNumDecimal Then
e.Handled = True
End If
End If
Else
If e.KeyChar.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf e.KeyChar.IsControl(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End If
End Sub
Aqui les dejo un codigo para validar solo Numeros No olvidar que es en el evento keypress de la caja de texto que vas a validar :
Private Sub txt_Cantidad_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_Cantidad.KeyPress
‘Aqui verificamos si la tecla presionada es una letra si es asi entonces no se tomara o no se mostrara la letra.
If Char.IsLetter(e.KeyChar) Then
e.Handled = True
Else
‘Aqui verifica si se ha presionado alguna tecla de control, puede ser backspace,tabulardor, si es asi lo dejara pasar normal pork puedes borrar.
If Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
‘Aqui verifica si es un separador o espacio en blanco, si es asi no lo dejara pasar.
If Char.IsSeparator(e.KeyChar) Then
e.Handled = True
Else
‘Aqui Verifica si la tecla presionada es un número, si es asi normal lo deja pasar.
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End If
End If
End If
End Sub
muchas gracias amigo, el contigo anda muy bien y si errores te lo agradesco
Muy buen ejemplo es muy facil de entender su logica y a la vez es muy corto comparado con los demas. Gracias
lindo… muy util.. gracias
muy bueno el ejemplo
de Hamlet Medina Sánchez
muchas gracias me ayudo mucho el codigo
x fin alguien q se digne en hacer codigos como la gente y q funcione x sobre todas las cosas! gracias cariño me ahorraste el stress… tqm!
Buenas mis amigos una consulta, el condigo que dan si funciona enmodo consola pero en modo web no, saben como realizarlo por fa denme una manito…..
Grcias………….
QUISIERA SABER COMO SE PUEDEN VALIDAR EL SIGNO MENOS Y EL PUNTO DECIMAL… GRACIAS
hola, buenas noches
Necesito hacer un tabajo practico, y tengo un textbox, y tengo que validar si es un número o un texto. Por ejemplo si tengo que ingresar el DNI, tengo que verificar que sea numero, y no se como hacerlo, si alguien me podria ayudar, muchas gracias.
Chiquillos definitivamente esto es una bendición, no me puedo imaginar que hubiera sido de mi sin este codigo
MIL GRACIASSSSSS!!!!
Esto esta excelente, gracias amigo.
Esta Ok.
Este codigo me ha ayudado mucho.
ta chido
chewere
hola a todos.. muy bueno el codigo, me ha servido. ahora quisiera q me ayudara ya q estoy trabajando con un grid q contiene un objeto datagridviewcomboboxcolumn ai les va el codigo para ver si me ayudan a encontrar el error o lo q le haga falta:
Private Sub BtnAddRequisito_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAddRequisito.Click
Dim sConexion As String = Negocio.Conexion
Dim Ds_datos As New DataSet
Dim sQuery As String
CboRequisitoColumn.Name = “Materia”
Me.DGVMaterias.Columns.Add(CboRequisitoColumn)
sQuery = “SELECT asg_codigo as codigo, asg_nombre as descripcion FROM spsatbasignatura where asg_semestre<" & Me.CMBSemestre.Text
Ds_datos = Accesar_Datos.GetDataSet(sQuery, sConexion)
my_DGVCboColumn.DataSource = Ds_datos.Tables(0)
my_DGVCboColumn.Name = "Datos"
my_DGVCboColumn.DisplayMember = Ds_datos.Tables(0).Columns("descripcion").ToString
my_DGVCboColumn.ValueMember = Ds_datos.Tables(0).Columns("codigo").ToString
Me.DGVMaterias.Columns.RemoveAt(0)
Me.DGVMaterias.Columns.Insert(0, my_DGVCboColumn)
End Sub
'el anterior crea los grid
'el siguiente es donde quiero
'asignar o insertar el codigo q me da el
'objeto my_DGVCbocolumn q se encuentra dentro de DGVMaterias xq creo yo q no debo
'hacer referencia a CboRequisitoColumn
Private Sub Agregar_Requisitos()
Dim sQuery As String = ""
Dim sConexion As String = Negocio.Conexion
Dim Ds_Datos As New DataSet
Dim KROW As Integer = 0
Dim aux As String
Dim r As Integer
Try
For KROW = 0 To Me.DGVMaterias.RowCount – 1
aux = Me.my_DGVCboColumn.Items(KROW).ToString
r = CType(aux, Integer)
sQuery = "spi_spsatbrequisito_asignatura " & Codigo & "," & r & ""
Ds_Datos = Accesar_Datos.GetDataSet(sQuery, sConexion)
Next KROW
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
End Try
End Sub
' de antemano gracias
hola, quisiera saber como hacer para q en una caja de texto solo puedan digitar letras y nada de numeros.
pd; lo necesito para lo mas pronto posible si se puede hoy mejor.
muchas gracias por la atencion prestada.
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
If IsNumeric(TextBox2.Text) Then
MsgBox(“Debe de ser letras”)
End If
End Sub
Ey tu codigo no valida.
Solo muestra mensaje diciendo q no se admiten letras, pero si quitas el mensaje no hace naaa.
pon los mismo y e.hendled pones lo contrario…. si es false lo cambias a true y viceversa….
muchas gracias!! x este blog xq estoy haciendo mi proye y ya no me da la cabeza si pudieran ayudarme con esto les agradezco:
tengo un form donde ingreso los datos y otros con un grid donde consulto pero resulta q cuando quiero consultar desde el primero la informacion q tengo guardada en el grid no pasa naa naa yo lo filtre por la primary key pero no :< si me inspiran les agradezco
como puedo hacer para que en un textbox aparesca una leyenda cuando ingrese datos en otro textbox???? si alguien me pude ayudar se lo agradecere
consulta como se puede hacer que al momento de ingresar los numeros al texbox estos automaticamente ponga los puntos de los miles
puedes darle formato en el evento LostFocus usando:
textbox1.text = Format(textbox1.text, “Fixed”)
por ejemplo.
Porfavor me pueden ayudar, necesito validar el ingreso de numeros en un text box, ya tengo validado que solo admita numeros, ahora necesito que valide el ingreso del primer numero que solo sea el numero 2.
saben por ahi encontre algunos codigo un poco complejos para digitar solo texto o numeros, pero en si les traigo un codigo muy sencillo, y simplemte basta cambiar un solo parametro para que haga la diferencia entre aceptar texto o numeros,bueno sin mas que decir y en espera que les sae de mucha utilidad aqui les va:
primero hacemos referencia a:
Imports System.Windows.Forms.Form
y a continuacion creamos una funcion que contrendra el codigo principal para verificar su contenido asi:
Public KeyAscii As Short
‘Funcion para permitir unicamente numeros, punto, coma, tecla de retroceso y enter
Function Tecla_Presionada(ByVal KeyAscii As Short) As Short
If InStr(“0123456789.,”, Chr(KeyAscii)) = 0 Then(asi solo admitira numeros, y lo que ya expliqye anteriormente, pero si quitamos “= 0″ sera a la inversa solo admitira letras, espero me entiendan sino luego les explico…)
Tecla_Presionada = 0
Else
Tecla_Presionada = KeyAscii
End If
Select Case KeyAscii
Case 8
Tecla_Presionada = KeyAscii
Case 13
Tecla_Presionada = KeyAscii
End Select
End Function
Una vez hecha la funcion nos vamos al textbox1 por asi decirlo ustedes sabran como le llaman eso si en el evento KeyPress y le digitamos lo siguiente:
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(Tecla_Presionada(KeyAscii))
If KeyAscii = 0 Then
e.Handled = True
End If
End Sub
Y listo depuramos el programa y ya esta, eso es todo amigos espero les halla sido de utilidad, hasta luego, cualquier duda comenten…
Muy bueno y util tu post!
nserio me salvaste!!
muchas graciass
=)
Para ser perfecto solo le falta el control de la coma digital y la colocacion automática de los puntos de millares.
Gracias
hola quisiera q me ayuden quiero q un textbox me acepte solo letras y espacios
lo necesito lo mas antes posible gracias
hola sera que me puedan ayudar con el codigo para aceptar pero necesito extraer datos desde la B.d. pero no se como hacerlo porfis si pueden se los agradecede…
hola estoy tambien empezando visual basic cree un editor de texto en visual basic, tengo una pregunta que hacer en un RichTextBox cuando escribo palabras por ejemplo. “Hola mundo” ese espacio en blanco lo quiero rellenar con un * asi quedaria “Hola*mundo”, pero no se cual es la funcion, no quiero que lo haga directamente en el RichTextBox si no que mediante un boton en cuanto termine de escribir el texto darle click al boton que llame a la funcion(en caso de que sea una funcion) y todos los espacios en blanco del RichTextBox me los rellene con * cual es el código fuente o cual es la funcion para hacer esto y como llamaria el boton a la funcion(en caso de ser una funcion). Por cierto es en Visual Basic 2008
este comentario tampoco m ha ayudado mucho
quisiera que me ayudaran conl a validacion de la cedulan la validacion de la cedula que la necesito urgente porfa