• Domingo 22 de Diciembre de 2024, 14:20

Autor Tema:  problema con los eventos KeyPress (solucionado)  (Leído 2418 veces)

jose.va19

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
problema con los eventos KeyPress (solucionado)
« en: Domingo 22 de Junio de 2008, 17:53 »
0
Hola, resulta que estoy haciendo una especie de shell y la propia consola seria un richTextBox. El problema es que si el usuario introduce un comando, y luego con la tecla de retroceso empieza a borrarlo, tengo que comprobar que borre hasta el comienzo del prompt:

<jose>$ dir

es decir, cuando pulse la tecla de retroceso 3 veces ya no puede borrar más. Entonces tengo una función que compruebo si se pulsa esa tecla y si se puede borrar o no. El problema está en que cuando pulso la tecla (y en teoria no podría borrar) me sale la alerta de no poder borrar, pero en el richTextBox si que se borra.

Entonces lo que queria hacer es que en esta función se comprobara si se puede borrar o no y en caso de que no, desactivara de alguna manera el evento para que no se borrara del richTextBox.

He estado mirando y esta la propiedad de Handled que te dice si el evento ha sido tratado o no y pongo Handled = true, pero sigue borrandose el texto en el richTextBox.
« última modificación: Domingo 22 de Junio de 2008, 23:53 por jose.va19 »

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: problema con los eventos KeyPress
« Respuesta #1 en: Domingo 22 de Junio de 2008, 23:17 »
0
Cita de: "jose.va19"
Hola, resulta que estoy haciendo una especie de shell y la propia consola seria un richTextBox. El problema es que si el usuario introduce un comando, y luego con la tecla de retroceso empieza a borrarlo, tengo que comprobar que borre hasta el comienzo del prompt:

<jose>$ dir

es decir, cuando pulse la tecla de retroceso 3 veces ya no puede borrar más. Entonces tengo una función que compruebo si se pulsa esa tecla y si se puede borrar o no. El problema está en que cuando pulso la tecla (y en teoria no podría borrar) me sale la alerta de no poder borrar, pero en el richTextBox si que se borra.

Entonces lo que queria hacer es que en esta función se comprobara si se puede borrar o no y en caso de que no, desactivara de alguna manera el evento para que no se borrara del richTextBox.

He estado mirando y esta la propiedad de Handled que te dice si el evento ha sido tratado o no y pongo Handled = true, pero sigue borrandose el texto en el richTextBox.
Me parece que vas a tener que usar otro evento, por ejemplo, el "KeyDown":

Código: Text
  1. private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
  2. {
  3.         if (richTextBox1.Text[richTextBox1.Text.Length - 1] == '$' && e.KeyCode== Keys.Back)
  4.                  e.Handled = true;
  5. }
  6.  

El tema es que la ejecución del evento "KeyPress" ocurre cuando la tecla ya se "procesó" (Bueno, no se como decirlo :P )

Un saludo
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

jose.va19

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: problema con los eventos KeyPress
« Respuesta #2 en: Domingo 22 de Junio de 2008, 23:51 »
0
Efectivamente, cuando se presiona una tecla se producen tres eventos: KeyDown, keyPress y KeyUp por ese orden.
Tenia que tratar primero el evento keyDown.

Solucionado, gracias tio.  :good:

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: problema con los eventos KeyPress
« Respuesta #3 en: Lunes 23 de Junio de 2008, 00:25 »
0
Cita de: "jose.va19"
Efectivamente, cuando se presiona una tecla se producen tres eventos: KeyDown, keyPress y KeyUp por ese orden.
Tenia que tratar primero el evento keyDown.

Solucionado, gracias tio.  :good:
Un placer :beer:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.