[ Foro de C# ]

Controlar evento MouseLeave de un panel con botones adentro

01-Apr-2018 02:13
Invitado (sr JJ)
1 Respuestas

Buenas noches, tengo un panel mas pequeño, que cuando se entra a el activa el evento MouseEntered el cual ocualta el mas pequeño y muestra el otro panel con sus 12 botones (hasta ahi todo perfecto), lo que quiero es que cuando el maouse salga del panel mas grande activando el evento MouseLeave me oculte el panel mas grande con sus botones y vuelva aparecer el pequeño y asi sucesivamente.

el problema radica que como el panel grande tiene 12 botones, entonces cuando entro a algun boton se activa el evento MuseLeave aun sabiendo que no ha salido del perimetro del panel y pues ebviamente eso es lo que no deseo.

hasta ahora tengo algo asi:



private void cancha1_MouseEnter(object sender, EventArgs e)
       {

           Console.WriteLine("entro   ");

         

           foreach (Control bt in this.cancha1.Controls)
           {
               bt.Visible = true;
               bt.MouseEnter += camchis_MouseEnter;
           }
         
       }
     
       private void cancha1_MouseLeave(object sender, EventArgs e)
       {

           //Console.WriteLine("salio22   " + Bounds.Contains(this.PointToClient(Cursor.Position)));

           if (!cancha1.Bounds.Contains(this.PointToClient(Cursor.Position)))
           {
               //cancha1.SetBounds(16, 19, 328, 163);
               camchis.Visible = true;
               cancha1.Visible = false;
               foreach (Control bt in cancha1.Controls)
               {
                   bt.Visible = false;
               }
               
           }
       

       }


09-Apr-2018 12:59
Nacho Cabanes (+83)

Es raro. Las transiciones a elementos interiores no deberían disparar el evento onMouseLeave.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)