Hola: aquí els deixo un exemple molt senzill per avaluar les tecles pressionades quan s'ingressen dades en un TextBox i només permetre els nombres ignorant tot el que no sigui un nombre. És molt bàsic però els servirà de punt de partida per validar qualsevol ingrés. A continuació el codi ....
Private Sub TextBox1_KeyPress (ByVal sender As Object, ByVal i 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 tipus char té diverses propietats que ens resultarien molt útils a l'hora de realitzar validacions. En l'exemple veiem la propietat. IsNumber ... aca algunes més per recordar:
IsControl: Indica si el caràcter unicode especificat es classifica per categories com un caràcter de Control
IsDigit: Indica si el caràcter unicode especificat es classifica per categories com un Dígit Decimal
IsLetter: Indica si el caràcter unicode especificat es classifica per categories com un caràcter alfabètic
IsLetterOrDigit: Indica si el caràcter unicode especificat es classifica per categories com un caràcter alfabètic o un Dígit Decimal
i hi ha moltes més ... els deixo un consell sa ... sempre consulteu l'ajuda.
ehemp .. Leh nnya gg!!
klow BWT aplikasi parkir, menentukan harga masuk donen harga keluarnya gmna?
low bzamah sklian KCH contoh aplikasi parikir!!
HHA ...!
tolong pzn! ea ...!
low TWU kirimin k correu electrònic Aku ea!
thank s!
Hola
Saps que recentment estic començant a vb i m'estan ensenyat vn.net 2008, i vull fer un tipus de calculadora bàsica no tan complexa però necessito validar els texbox (Només Nombres), en el codi que la teva exposes em dóna problema amb el lt ja que no aquesta declaració, m'imagino que després em donarà problema gt, com els declare perquè funcioni.
Gràcies per endavant ..
Mira els caràcters "<" i ">" no són de VB. NET, són d'HTML i haurien d'aparèixer com "" respectivament. Així la intrucció quedaria:
If (Not Char.IsNumber (e.KeyChar) And e.KeyChar Microsoft.VisualBasic.ChrW (8)) Then
es que la pregunta és velleta però vaig pensar en futurs visitants xD.
hola, bones
Necessito fer un tabajo pràctic, i tinc un TextBox, i he de validar si és un nombre o un text. Per exemple si he de ingressar el DNI, he de verificar que sigui numero, i no sé com fer-ho, si algú em podria ajudar, moltes gràcies.
Espero et serveixi.
Et valida nuemros enters o decimals, li pots dir fins quants decimals t'accepti i quin serà el símbol del decimal punt o coma, depenent el país.
Public Sub ValidaNumero (ByVal i 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 els deixo un codi per validar sol Nombres No oblidar que és en l'esdeveniment keypress de la caixa de text que vas a validar:
Private Sub txt_Cantidad_KeyPress (ByVal sender As Object, ByVal i As System.Windows.Forms.KeyPressEventArgs) Handles txt_Cantidad.KeyPress
'Aquí verifiquem si la tecla pressionada és una lletra si es així, llavors no es prengués o no es mostrés la lletra.
If Char.IsLetter (e.KeyChar) Then
e.Handled = True
Else
'Aquí verifica si s'ha pressionat alguna tecla de control, pot ser backspace, tabulardor, si es així, el deixés passar normal pork pots esborrar.
If Char.IsControl (e.KeyChar) Then
e.Handled = False
Else
'Aquí verifica si és un separador o espai en blanc, si es així, no ho deixa passar.
If Char.IsSeparator (e.KeyChar) Then
e.Handled = True
Else
'Aquí Verifica si la tecla premuda és un nombre, si es així, normal el deixa passar.
If Char.IsDigit (e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End If
End If
End If
End Sub
moltes gràcies amic, el tu està molt bé i si errors t'ho agradesco
Molt bon exemple és molt fàcil d'entendre la seva lògica i alhora és molt curt comparat amb els altres. Gràcies
valent ... molt útil .. gràcies
x fi algú q es digni a fer codis com la gent iq funcioni x sobre de tot! gràcies afecte em ahorraste l'estrès ... TQM!
Bones meus amics una consulta, el condigo que donen si funciona enmodo consola però de cap manera web no, saben com realitzar-lo per fa donin-me 1 manito .....
Grcias .............
VOLDRIA SABER COM ES PODEN VALIDAR EL SIGNE MENYS I EL PUNT DECIMAL ... GRÀCIES
hola, bona nit
Necessito fer un tabajo pràctic, i tinc un TextBox, i he de validar si és un nombre o un text. Per exemple si he de ingressar el DNI, he de verificar que sigui numero, i no sé com fer-ho, si algú em podria ajudar, moltes gràcies.
Nois definitivament això és una benedicció, no em puc imaginar que hagués estat de la meva sense aquest codi

MIL GRACIASSSSSS!
Això aquesta excel · lent, gràcies amic.
Aquesta Ok.
Aquest codi m'ha ajudat molt.
ta chido
chewere
hola a tots .. molt bo el codi, m'ha servit. ara voldria q m'ajudés ja q estic treballant amb un grid q conté un objecte datagridviewcomboboxcolumn ai els va el codi per veure si m'ajuden a trobar l'error o el q li faci falta:
Private Sub BtnAddRequisito_Click (ByVal sender As System.Object, ByVal i As System.EventArgs) Handles BtnAddRequisito.Click
Dim sConexion As String = Negocio.Conexion
Dim Ds_datos As New DataSet
Dim sQuery As String
CboRequisitoColumn.Name = "Matèria"
Me.DGVMaterias.Columns.Add (CboRequisitoColumn)
sQuery = "SELECT asg_codigo es codi, asg_nombre es descripció 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 = "Dades"
my_DGVCboColumn.DisplayMember = Ds_datos.Tables (0). Columns ("descripcio"). ToString
my_DGVCboColumn.ValueMember = Ds_datos.Tables (0). Columns ("codi"). ToString
Me.DGVMaterias.Columns.RemoveAt (0)
Me.DGVMaterias.Columns.Insert (0, my_DGVCboColumn)
End Sub
'L'anterior crea els grid
'El següent és on vull
'Assignar o inseriu el codi q em dóna el
'Objecte my_DGVCbocolumn q es troba dins de DGVMaterias xq crec jo q no he de
'Fer referència 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" & Codi & "," & r & ""
Ds_Datos = Accesar_Datos.GetDataSet (sQuery, sConexion)
Next KROW
Catch ex As Exception
Msgbox (ex.Message, MsgBoxStyle.Critical, "Error")
End Try
End Sub
'Per endavant gràcies
hola, voldria saber com fer per q en una caixa de text només puguin digitar lletres i res de nombres.
pd; el necessito per el mes aviat possible si es pot avui millor.
moltes gràcies per l'atenció prestada.
Private Sub TextBox2_TextChanged (ByVal sender As System.Object, ByVal i As System.EventArgs) Handles TextBox2.TextChanged
If IsNumeric (TextBox2.Text) Then
Msgbox ("Deu ser lletres")
End If
End Sub
Ei teu codi no valida.
Només mostra missatge dient q no s'admeten lletres, però si treus el missatge no fa naaa.
posa els mateix i e.hendled poses el contrari .... si és false el canvies a true i viceversa ....
moltes gràcies!! x aquest bloc xq estic fent la meva proye i ja no em fa el cap si poguessin ajudar amb això els agraeixo:
tinc un form on ingrés les dades i altres amb un grid on consulto però resulta q quan vull consultar des del primer la informació q tinc guardada en el grid no passa naa naa jo ho filtri per la primary key però no: <si em inspiren els agraeixo
com puc fer perquè en un TextBox aparesca una llegenda quan ingressi dades en un altre TextBox???? si algú em vaig poder ajudar l'hi agrairé
consulta com es pot fer que al moment d'ingressar els números al texbox aquests automàticament posi els punts dels milers
pots donar-li format en l'esdeveniment LostFocus usant:
textbox1.text = Format (textbox1.text, "Fixed")
per exemple.
Si us plau em poden ajudar, necessito validar l'ingrés de noms en un text box, ja tinc validat que només admeti números, ara necessito que validi l'ingrés del primer número que només sigui el número 2.
saben per ahi vaig trobar alguns codi una mica complexos per digitar sol text o números, però en si els porto un codi molt senzill, i simplemte prou canviar un sol paràmetre perquè en faci la diferència entre acceptar text o números, bo sense més que dir i en espera que els sae de molta utilitat aqui els hi va:
primer fem referència a:
Imports System.Windows.Forms.Form
ia continuació creem una funció que contrendra el codi principal per verificar el seu contingut així:
Public KeyAscii As Short
'Funció per permetre únicament números, punt, coma, tecla de retrocés i enter
Function Tecla_Presionada (ByVal KeyAscii As Short) As Short
If Instr ("0123456789.,", Chr (KeyAscii)) = 0 Then (així només ha d'admetre números, i el que ja expliqye anteriorment, però si traiem "= 0" serà al revés només ha d'admetre lletres, espero m'entenguin sinó després els 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
Un cop feta la funció ens anem al textbox1 per així dir-ho vostès sabran com en diuen això si en l'esdeveniment KeyPress i li digitamos el següent:
Private Sub TextBox1_KeyPress (ByVal sender As Object, ByVal i 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
I llest depurem el programa i ja està, això és tot amics espero els troba estat d'utilitat, fins ara, qualsevol dubte comentin ...
Molt bo i útil teu post!
nserio em vas salvar!!
moltes graciass
=)
Per ser perfecte només li falta el control de la coma digital i la col · locació automàtica dels punts de milers.
Gràcies
hola voldria q m'ajudin vull q un TextBox m'accepti sol lletres i espais
ho necessito el més aviat possible gràcies
hola serà que em puguin ajudar amb el codi per acceptar però necessito extreure dades des de la Bd però no es com fer-ho porfis si poden els hi agradecede ...
hola estic també començant visual basic creï un editor de text en visual basic, tinc una pregunta que fer en un RichTextBox quan escric paraules per exemple. "Hola món" aquest espai en blanc el vull omplir amb un * així quedaria "Hola * món", però no es quina és la funció, no vull que ho faci directament en el RichTextBox sinó que mitjançant un botó tan bon punt acabi d'escriure el text donar-li clic al botó que cridi a la funció (en cas que sigui una funció) i tots els espais en blanc del RichTextBox me'ls ompli amb * quin és el codi font o quina és la funció per fer això i com diria el botó a la funció (en cas de ser una funció). Per cert és en Visual Basic 2008
aquest comentari tampoc m ha ajudat molt