Usar en distintos textbox al llamar evento Keypress misma función

08/05/2008 - 14:02 por Juanato | Informe spam
Hola a todos los forofos del C sharp:

Soy un programador Xbase que después de 13 años, tengo que
modernizarme. Estoy experimentando con c sharp, y tengo varias
necesidades para ahorrar código:


1º) Veo que podria usarse al llamar al mismo evento en varios textbox
a la misma función. Supongo que se podria sobreescribir el mismo
evento para permitirlo, pero no llego. Seria algo asi...


public void txtValidaTeclaPulsada(object sender,
System.Windows.Forms.KeyPressEventArgs e, int
nModo)
{
// Si se pulsa la tecla Intro, pasar al siguiente
//if( e.KeyChar == Convert.ToChar('') ){
if( e.KeyChar == '' ){
e.Handled = true;
// txtFecha.Focus();
}else if( e.KeyChar == '.' ){
// si se pulsa en el punto se convertirá en coma
e.Handled = true;
SendKeys.Send(",");
}
}

SI nModo es 0, hago una validación como número sin decimales
si es 1, hago numérico con decimales, pero altero . por ,
Si es 2, simplemente tengo en cuenta que si pulsa ESC, me salgo de la
edición del form



Alguien ha llegado a conseguir esto que pregunto ?


Gracias desde Córdoba, España
 

Leer las respuestas

#1 Alberto Poblacion
08/05/2008 - 14:13 | Informe spam
"Juanato" wrote in message
news:
1º) Veo que podria usarse al llamar al mismo evento en varios textbox
a la misma función. Supongo que se podria sobreescribir el mismo
evento para permitirlo, pero no llego. Seria algo asi...

public void txtValidaTeclaPulsada(object sender,
System.Windows.Forms.KeyPressEventArgs e, int nModo)



Bueno, asi directamente, no.
Es lícito conectar una misma rutina de tratamiento de eventos con varios
controles, pero no le puedes cambiar los argumentos: tendría que tener
únicmente el "sender" y el "e", pero no puedes añadir nModo. El remedio
sería examinar el "sender" dentro de la rutina y a partir de él determinar
el nModo.
Otra alternativa sería que cada control tenga su propia rutina de
tratamiento del evento, y dentro de esa rutina se haga una llamada a la
rutina "común", pasándole el "sender" y el "e" y añadiendo en la llamada un
tercer parámetro para el nModo.

Preguntas similares