none
Formularios con Páneles RRS feed

  • Pregunta

  • Hola buen día. Tengo la siguiente situación espero me puedan apoyar.

    Hice una aplicación con 3 Paneles dentro de un formulario. Uno pequeño de lado izquierdo y otro de lado superior para botones y en la parte central otro para mostrar otros formularios hijos.

    Sin embargo, tengo 1 botón que debo esconder y mostrar con la tecla Ctrl + S, sin embargo no me funciona pero lo más raro es que en otra aplicación que sólo consta de un formulario si me funciona y es el mismo código.

    Este es el código:

    private void frmPrincipal_KeyDown(object sender, KeyEventArgs e)
    {
       if (e.Control == true && e.KeyCode == Keys.S)
                {
                    if (txtEne.Visible==false)
                    {
                        btnVentas.Visible = true;
                     }
                    else
                    {
                        btnVentas.Visible = false;
                      }
    
                  }
    }
    

    No sé que tenga que ver el que haya incluido páneles por que inclusive si incluyo el código en uno de los formularios hijos que muestro en el panel principal tampoco lo muestra. éste código lo tengo dentro del frmPrincipal_Load. El problema que tengo es que ni siquiera entra al método KeyDown por que coloqué un MessageBox y no lo muestra. De antemano gracias por su apoyo.

    Saludos cordiales

     

    miércoles, 28 de noviembre de 2018 3:19

Respuestas

  • hola

    el tema es que tratas un evento del form, solo ejecutara si este tiene el foco, si estas dentro de un control en el panel no aplicara el evento del form

    quizas debas definir

    Form.ProcessCmdKey

    fijate que se implemente usando

       protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
       {
       }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 28 de noviembre de 2018 11:19