Jueves 14 de Noviembre de 2024, 04:15
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
VB .NET
(Moderador:
ElNapster
) »
ª,º,ç,Ç, ¿como Validar Esto?
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: ª,º,ç,Ç, ¿como Validar Esto? (Leído 2084 veces)
karolarivero
Miembro activo
Mensajes: 25
ª,º,ç,Ç, ¿como Validar Esto?
«
en:
Viernes 13 de Julio de 2007, 15:34 »
0
Hola a todos:
Mi primera pregunta, ¿que son esos simbolos? los he buscado en el codigo ASCII y no aparecen. Estoy validando un textbox para que en la primera posicion no se acepten espacios en blanco, signos de puntuacion, simbolos, solo letras o numeros. Para eso tengo el siguiente codigo:
Código: Text
If e.KeyChar.IsLetter(e.KeyChar) Then ' caracter alfabetico
e.Handled = False
ElseIf e.KeyChar.IsControl(e.KeyChar) Then ' caracter de control
e.Handled = False
ElseIf e.KeyChar.IsSeparator(e.KeyChar) And dig = 1 Then 'caracter separador
e.Handled = True
ElseIf e.KeyChar.IsSymbol(e.KeyChar) And dig = 1 Then ' Caracter de simbolo
e.Handled = True
ElseIf e.KeyChar.IsDigit(e.KeyChar) Then ' Digito decimal, numero
e.Handled = False
ElseIf e.KeyChar.IsPunctuation(e.KeyChar) And dig = 1 Then ' Signo de puntuación
e.Handled = True
End If
Hace lo que quiero pero no me valida estos 4 señores: º,ª,ç,Ç; opte por poner, como prueba:
Código: Text
ElseIf e.KeyChar = "Ç" Then
e.Handled = True
End If
Al final a ver si lo validaba y no lo valida. Alguien me puede explicar que pasa ahi y como puedo validar eso.
Saludos y Gracias por su atención
Tweet
MCRS
Cajami
Miembro MUY activo
Mensajes: 298
Re: ª,º,ç,Ç, ¿como Validar Esto?
«
Respuesta #1 en:
Viernes 13 de Julio de 2007, 16:44 »
0
Hola, que tal si pruebas con esto:
Código: Text
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
'Para Ñ y ñ
If Asc(e.KeyChar) = 241 OrElse Asc(e.KeyChar) = 209 Then Exit Sub
'para Numeros, Letras minusculas y mayusculas
Select Case Asc(e.KeyChar)
Case 0 To 47
e.Handled = True
Case 58 To 64
e.Handled = True
Case 91 To 96
e.Handled = True
Case 123 To 255
e.Handled = True
End Select
End Sub
Espero te sea util, nos vemos
Lima - Perú
-------------------------------------------------------------------------------------------------------
"Persigue tus metas, tus objetivos, tus sueños, nunca t rindas si t caes 1000 veces levantat 1000 veces y sigue adelante..."
Nebire
Miembro HIPER activo
Mensajes: 670
Re: ª,º,ç,Ç, ¿como Validar Esto?
«
Respuesta #2 en:
Viernes 13 de Julio de 2007, 17:46 »
0
Esos 4 caracteres, son caracteres extendidos, entonces sólo te valdrá si usando el mismo juego de caracteres coincide con ellos.
Es decir debes preguntar por su código ascii y es con eso con lo que lo debes comparar, no con el símbolo ..de hecho yo ni siquiera validaría con e.keychar ya que los caracteres extendidos usan ALT + número, no recoges casos com á,é,í,ó,ú, Á,É,Í,Ó,Ú, ü , Ü que podrías aceptar.... e.keychar solo te devuelve la última tecla pulsada, por tanto si tratas de poner á te devlverá que has pulsado [shift], luego [´] y luego [a], sin embargo es sólo un carácter que requiere 3 pulsaciones.
keychar es muy bueno para validar botones basados en atajos y y teclas que 'se ven' (por ejemplo F1, escape, down, enter, etc....) cosas así, pero para validar caracteres es mejor usar la función asc() y chr() un ejemplo
Código: Text
Imports vb=Microsoft.VisualBasic
Private Sub textbox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles textbox1.TextChanged
Static cadena As String = ""
Dim letra As String
Dim n As Short
letra = VB.Right$(TextBox1.Text, 1)
n = Asc(letra)
If ((Asc(letra) >= Asc("0")) And (Asc(letra) <= Asc("9"))) Or ((Asc(letra) <= Asc("a")) And (Asc(letra) <= Asc("z"))) Then
' 'es correcto
cadena = TextBox1.Text
Else 'aquí se valoran opciones menos frecuentes y casos no válidos
'if n=letras tildadas o letras con diéresis luego
'cadena = TextBox1.Text
'else
TextBox1.Text = cadena
msgbox("El carácter '" & letra & "' no es válido.")
beep
'end if
End If
End Sub
Hay que tener en cuenta que esto va examinando letra a letra según se va introduciendo por el teclado, pero hay 2 situaciones en que esto no se validaría correctamente.
Esos casos son cuando el texto sea pegado y no introducido por el teclado, o bien cuando el usuario se plante en medio de una cadena válida y pulse un carácter. Para solucionar estos casos lo ideal es validar toda la cadena cada vez que el texto cambie (y no sólo el último carácter como se muestra en el código), en ese caso, la función que realiza iría en un bucle, la variable estática sobraría y el texto a devolver si hay error sería o una cadena vacía o llo verficado que es válido hasta el momento.
Si el texto a introducir es muy corto, la validación va bien en el evento textchanged, en cambio si es muy largo el texto, lo ideal es validarlo cuando el usuario finalice y pulse un botón, y en ese caso no borrarle el texto, si no en el mensaje indicarle que caracteres no son válidos...
«Ma non troppo»
----> ModoVacaciones = False<----
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
VB .NET
(Moderador:
ElNapster
) »
ª,º,ç,Ç, ¿como Validar Esto?