Foros del Web » Programación para mayores de 30 ;) » .NET »

Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

Estas en el tema de Bloquear "tildes y Ñ o ñ" en un textbox o datagridview en el foro de .NET en Foros del Web. eso quisiera saber como hacer que en el textbox o datagridview no me permita ingresar tildes y la letra ñ ya sea mayuscula o minuscula ...
  #1 (permalink)  
Antiguo 07/10/2009, 11:21
Avatar de Dimax  
Fecha de Ingreso: octubre-2009
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 0
Mensaje Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

eso quisiera saber como hacer que en el textbox o datagridview no me permita ingresar tildes y la letra ñ ya sea mayuscula o minuscula


gracias
  #2 (permalink)  
Antiguo 08/10/2009, 01:32
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

Tienes que tener en cuenta que windows funciona contra el servidor. Si quieres hacer el control por carácter ingresado debes hacerlo con javascript.

Si quieres hacerlo contra el servidor, tienes una opción engorrosa en la cantidad de cálculo, que aparece descrita aquí:

http://www.forosdelweb.com/f29/valid...bforms-730716/

Básicamente cotejar char a char, tienes que definir que quieres que analice para cada char que quieras controlar, es decir if(char='Ñ' || char='ñ' || char='á' || char='Á' ... etc) { //no validar }

La otra opción es usar expresiones regulares. De una forma como esta...

//Validación del formato de nombre usando una regular expression. OJO. Incluye en la validación [ñáéíóú] y especios en blanco.
public static Boolean validarNombre(String nombre)
{
string expresion = "[a-z]?[ñáéíóú]?[\\s]?";

if (Regex.IsMatch(nombre, expresion))
{
if (Regex.Replace(nombre, expresion, String.Empty).Length == 0)
{ return true; }
else
{ return false; }
}
else
{
return false;
}
}

Y para el validator

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
//Validación de nombre de persona utilizando una expresión regular
string nombre = TextBox1.Text.ToLower().Trim();
if (!validarNombre(nombre))
{
TextBox1.Text = "Error";
args.IsValid = false;
}
else { }
}

//Si lo que quieres es que no valide ñ ni tildes, tienes que retirar de la expresión regular esa parte. Si quieres que tampoco valide espacios en blanco intermedio, sólo te quedaría así:
string expresion = "[a-z]?";
  #3 (permalink)  
Antiguo 08/10/2009, 10:17
Avatar de Dimax  
Fecha de Ingreso: octubre-2009
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

en visual c sharp 2005 no encuentro esa propiedad CustomValidator y como no esta por ende menos encuentro el evento servervalidate.

en ese caso que debo hacer?

gracias
  #4 (permalink)  
Antiguo 08/10/2009, 10:34
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

ok bueno especifica mejor es una aplicacion windows ,web , mobile o silverlight??

si es winforms el concepto de la expression regular o de invalidar caracteres acentuados estaria mas ligado al evento de la celda al KeyDown para ser mas especifico y tendrias que validar si tu tecla presionada e invalidarla.

si fuera web lo mismo pero con javascript o usando un customvalidator
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 08/10/2009, 11:39
Avatar de Dimax  
Fecha de Ingreso: octubre-2009
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

bueno disculpa por ser tan poco especifico..

es en visual c sharp 2005 en winforms

la idea es que en el textbox solo queden letras mayusculas sin tilde ni Ñ o ñ y demas expresiones..

lo he intentado mediante un keypress bloqueando tecla por tecla.. en realidad es bastante engorroso...

me interesa saber bien como funciona el metodo de expresiones irregulaer.. lo ideal seria dentro de un keypress..

gracias
  #6 (permalink)  
Antiguo 09/10/2009, 01:27
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

Pues puedes usar esto entonces:
http://www.codeproject.com/KB/valida...nprovider.aspx
  #7 (permalink)  
Antiguo 09/10/2009, 08:06
Avatar de Dimax  
Fecha de Ingreso: octubre-2009
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

ya he solucionado un poco el problema..
pero el problema es q cuando coloco caracteres como ()//&%$·._... etc. entre medio de una mayuscula o numero lo acepta todo :(
este es mi codigo

if (Regex.IsMatch(this.textBox1.Text, @"[A-Z0-9]"))
{
MessageBox.Show(textBox1.Text);
//this.txtNombre.Focus();
}
else
{
MessageBox.Show("CARACTER INVALIDO", "ERROR",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}


espero ayuda plz

OTRA CONSULTA: es necesario que lo haga en el evendo keypress del textbox?

Última edición por Dimax; 09/10/2009 a las 09:21
  #8 (permalink)  
Antiguo 14/10/2009, 12:55
Avatar de Dimax  
Fecha de Ingreso: octubre-2009
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

nadie poestea?
  #9 (permalink)  
Antiguo 14/10/2009, 13:44
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

haz un ciclo que testee todos los caracteres que quieres bloquear...
ejemplo

primero creas un string, en el cual tienes los caracteres que no quieres que aparezcan en el texbox
Código:
string sCaracteres = "!"#$%&/()= y cualquier caracter que no quieres que aparezca";

despues, haces un ciclo for
for (int iCont = 0; iCont < sCaracteres.length; icont++)
{
      // aca haces la validacion de cada caracter comparandolo con el que esta capturado en el evento keypress 
if (sCaracteres.Substring(iContadorRegistros,1) == (la variable donde capturastes el caracter)
{ return false; }
else
{ return true; }
}

}
espero te sirva la idea
PLCH
  #10 (permalink)  
Antiguo 16/10/2009, 14:15
Avatar de Dimax  
Fecha de Ingreso: octubre-2009
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

no me resulta :(... pero el metodo de expresion regular q estaba usando me funciona pero a medias.. como dije solo me funciona con el primer caracter de la palabra.. pero si coloco una Ñ o una tilde en el medio de la palabra ya no funciona no lo pesca

Cita:
if (Regex.IsMatch(this.textBox1.Text, @"[A-Z0-9]"))
{
MessageBox.Show(textBox1.Text);
//this.txtNombre.Focus();
}
else
{
MessageBox.Show("CARACTER INVALIDO", "ERROR",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}

espero ayuda plz

OTRA CONSULTA: es necesario que lo haga en el evendo keypress del textbox?

creo q solo falta un paso pero no se me ocurre como arreglar la expresión

alguna otra ayuda plz?
  #11 (permalink)  
Antiguo 19/10/2009, 13:30
Avatar de Dimax  
Fecha de Ingreso: octubre-2009
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

up........
  #12 (permalink)  
Antiguo 19/10/2009, 22:17
 
Fecha de Ingreso: septiembre-2009
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

yo le colocaria un ExpressionValidator y en ValidationExpression pondria:
[a-nA-N]*.|[o-zO-Z]*.
o algo asi, nol o prove pero podrias jugar con algo asi, estas cosas funcionan
  #13 (permalink)  
Antiguo 20/10/2009, 09:02
Avatar de Dimax  
Fecha de Ingreso: octubre-2009
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

Cita:
Iniciado por yoguille Ver Mensaje
yo le colocaria un ExpressionValidator y en ValidationExpression pondria:
[a-nA-N]*.|[o-zO-Z]*.
o algo asi, nol o prove pero podrias jugar con algo asi, estas cosas funcionan
esa propiedad en visual csharp 2005 no está creo.. por q no la encontre
  #14 (permalink)  
Antiguo 23/10/2009, 05:38
Avatar de Dimax  
Fecha de Ingreso: octubre-2009
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

uppp.................
  #15 (permalink)  
Antiguo 11/11/2009, 11:16
Avatar de Dimax  
Fecha de Ingreso: octubre-2009
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

nadieee??? ninguna respuest mas???
  #16 (permalink)  
Antiguo 11/11/2009, 11:54
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

eeee... como que me perdí en las respuestas, lo que quieres es una caja de texto que no permita tildes y tampoco ñ.
Pues lo más indicado para este tipo de escenarios son las expresiones regulares, pero si sólo vas a restringir esos caracteres creo que verificando el ascii sería más facil :p

Algo así:
Código vb.net:
Ver original
  1. //Evento KeyPress
  2.         Select Case Asc(e.KeyChar)
  3.             Case 225, 233, 237, 243, 250, 193, 201, 205, 211, 218 'vocales con tilde (mayúsculas y minúsculas)
  4.                 e.Handled = True
  5.             Case 241, 209 'ñ y Ñ
  6.                 e.Handled = True
  7.         End Select
Puedes convertir este código a c# desde esta web.

Espero te ayude
__________________
Eduardo Peredo
Wigoin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:18.