none
Seleccionar combobox y presionar combinación de tecla para que se muestre controles. RRS feed

  • Pregunta

  • Saludos gentita, tengo un ejecutable  con lo toy desarrollando.. en C# con mysql, en un form al presionar clic en el combobox y presionar Ctrl + M se mostrara los labels y textbox que se encuentran ocultos, al volver presionar se ocultan les muestros la logica que eh avanzando si tuvieran alguna sugerencia bienvenido sea.. . .

    if (cbo.SelectedIndex = 0 and e.KeyCode == Ctrl + M) {

                    lblIngreso.Visible = true;
                    lblSalida.Visible = true;
                    TxtHI.Visible = true;
                    TxtHS.Visible = true;

                    else{
                        lblIngreso.Visible = false;
                        lblSalida.Visible = false;
                        TxtHI.Visible = false;
                        TxtHS.Visible = false;
                    }
                }


    frankjoel

    sábado, 7 de marzo de 2020 16:57

Todas las respuestas

  • Hola Frank Joel

    Me parece que no se puede mezclar el hacer click en un comboBox, con el esperar que se presionen teclas, y preguntar si SelectedIndex es igual a 0.

    Para verificar si se pulsó Ctrl + M tendrías que controlar el evento KeyDown del Form (no del ComboBox, del Form), así:

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Modifiers == Keys.Control && e.KeyCode == Keys.M)
        {
            // aquí hacer lo que debas hacer
        }
    }

    Espero te sea útil y pregunta si te hace falta algo más

    Saludos

    Pablo


    sábado, 7 de marzo de 2020 18:37
  • eh funciona.. .  Pablo  utilice este código: 

     if (e.Modifiers == Keys.Control && e.KeyCode == Keys.M){
                    lblIngreso.Visible = true;
                    lblSalida.Visible = true;
                    TxtHI.Visible = true;
                    TxtHS.Visible = true;
                    btnActualizarIngreso.Visible = true;

                    cbo.Items.Add("Todos");
                    cbo.Items.Add("Empresa");
                    cbo.Items.Add("Externo");
                }

    Se desea que al volver presionar Ctrl + M, se oculte, si tuvieran alguna sugerencia bienvenido sea.. . .  Gracias.


    frankjoel

    martes, 10 de marzo de 2020 0:06
  • Hola Frank Joel

    Si lo que necesitas es que si un control (como un Label o un TextBox) está visible sea vuelva invisible, o viceversa, lo que se hace (siempre) es simplemente cambiar de true a false y viceversa, o sea colocar el opuesto o complemento a true (el complemento a true de true es false y el de false es true), y cómo se consigue esto? Con el operador de NEGACIÓN. Pones un ! (signo de exclamación) delante del valor actual del boolean (en tu caso, la propiedad Visible de los controles) y se lo asignas a Visible. Como el código resuelve primero lo que hay en la parte derecha de la asignación (a = b;) y lo asigna a la parte izquierda, es que se logra esto. 

    El código, antes que te aburras:

    if (e.Modifiers == Keys.Control && e.KeyCode == Keys.M)
    {
        lblIngreso.Visible = !lblIngreso.Visible;
        lblSalida.Visible = !lblSalida.Visible;
        TxtHI.Visible = !TxtHI.Visible;
        TxtHS.Visible = !TxtHS.Visible;
        btnActualizarIngreso.Visible = !btnActualizarIngreso.Visible;
    
        cbo.Items.Add("Todos");
        cbo.Items.Add("Empresa");
        cbo.Items.Add("Externo");
    }

    Espero te ayude y progreses en tu aplicación.

    Saludos

    martes, 10 de marzo de 2020 1:01