none
necesito detectar cuando la tecla insert es pulsada en un formulario winform RRS feed

  • Pregunta

  • hola a todos tengo dos formularios en visual basic net uno para mostrar una grilla y el otro para editar un registro seleccionado de la grilla

    en el primer form tengo los botones agregar, modificar y borrar.

    necesito que cuando el usuario presione la tecja insert se ejecute el codigo del boton agregar

    tengo entendido que en el evento keypress no puedeo detectar si se presiono la tecla insert

    desde ya muchas gracias

    miércoles, 23 de julio de 2008 17:56

Respuestas

  • :-)

    Hola Rodrigo,

    Pues revisa bien el código porque a mi me funciona perfectamente:

     

    1) Creo una clase keyform que deriva de form

     

    public class keyformTongue Tiedystem.Windows.Forms.Form
        {
            protected override void OnKeyDown(System.Windows.Forms.KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Insert) this.Text = "ins";
                base.OnKeyDown(e);
            }
        }

     

    2) Uso esta clase en otro form (derivo de ella):

     

    public partial class Form1 : keyform
        {

     

        }

     

    Y funciona perfectamente...

    lunes, 28 de julio de 2008 11:57
    Moderador

Todas las respuestas

  • :-)

    Hola,

     

    Puedes usar el evento KeyDown:

     

            private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Insert) MessageBox.Show("INS");         
            }

    Y para interceptar todas las pulsaciones que se producen en todos los controles del form, no olvides activar la propiedad KeyPreview del formulario.

     

    Saludos,
    jueves, 24 de julio de 2008 7:41
    Moderador
  • hola franco tu solucion me resulto en el mismo form que presiono el insert. pero yo tengo un formulario base y puse el codigo en el key down del form base. cuando creo un form nuevo y lo heredo de este si presiono la tecla insert en el form devivado no me funciona, que podra ser?

     

    en el form base tengo tambien codigo para la tecla escape pero en el evento key press y ese evento si me funciona en el formulario heredado.

    gracias

     

    lunes, 28 de julio de 2008 11:14
  • :-)

    Hola Rodrigo,

    Pues revisa bien el código porque a mi me funciona perfectamente:

     

    1) Creo una clase keyform que deriva de form

     

    public class keyformTongue Tiedystem.Windows.Forms.Form
        {
            protected override void OnKeyDown(System.Windows.Forms.KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Insert) this.Text = "ins";
                base.OnKeyDown(e);
            }
        }

     

    2) Uso esta clase en otro form (derivo de ella):

     

    public partial class Form1 : keyform
        {

     

        }

     

    Y funciona perfectamente...

    lunes, 28 de julio de 2008 11:57
    Moderador