La Web del Programador: Comunidad de Programadores
 
    Pregunta:  61429 - AREA DE EVENTOS PARA CONTROLES PERSONALIZADOS USANDO GDI+
Autor:  LhaN
Pues bien, el titulo no es lo suficientemente claro de mi problema, pero no se me ocurrio un titulo mejor.
El tema es asi. Estoy realizando un control personalizado, un boton, pero con la particularidad de que es un hexagono. Visualmente funciona, he conseguido hacer la transparencia, pero funcionalmente sigue trabajando como si fuera un cuadrado.

Yo tengo dos botones asi:

xxxx
xxxxxxxoooo
xxxxoooooo
oooo

Espero que se capte la idea de la disposicion de los botones lo que ocurre es que las "esquinas" del ClienteRectangle por muy invisibles que sean, me lanzan eventos. Y la esquina de un boton tapa al otro boton, entonces en esa esquina el mouse se ve sobre un boton pero el evento mousemove se produce en el otro boton.

Existe alguna forma de evitar esto?

Ademas note lo siguiente, cuando el mouse pasa sobre un control, el formulario lanza un evento mouseleave. Hay alguna forma de que el formulario no lance el evento mouseleave y que se produsca el evento mousemove tanto en el control como en el formulario (o en dos controles superpuestos?)

En la descripcion del evento mouseenter note que dice "Tiene lugar cuando el mouse entra en la parte visible del control". Existe alguna manera de "definir" la parte visible de un control?

Bueno espero puedan responderme, gracias desde ya.

  Respuesta:  Juan Manuel Castañeda
Invoque a la misma subrutina en eventos similares en cada botón(p.e. mousemove ruytina xx)