Pregunta

Estoy tratando de entender qué tengo que hacer para anular el comportamiento del ToolStripDropDown control System.Windows.Forms donde si usa este constructor:

 var button = new ToolStripSplitButton("text","path to image", clickEventHandler)

entonces el menú desplegable solo se mostrará si mantengo el mouse presionado y si uso este otro

var button = new ToolStripSplitButton("text","path to image")

Luego, el menú desplegable se mostrará cuando haga clic.

Para mí está claro que suministrar un controlador de eventos de clic es muy explícito al decir "Oye, cuando hago clic, ejecuto esto" pero en el caso de un ToolStripSplitButton La distinción se difumina un poco debido a la naturaleza dividida del control en sí.

Entonces, lo que me gusta hacer es a) cuando el usuario hace clic en la parte del botón de la ToolStripSplitButton, el controlador de eventos de clic se ejecuta como lo normal b) cuando hago clic o presiono el mouse en la parte de flecha de la ToolStripSplitButton Entonces el desplegable muestra

¿Hay alguna propiedad/método OOB para hacer exactamente esto?

Gracias

¿Fue útil?

Solución

los ToolStripsplitButton tiene dos manejadores de clic. Uno se llama "Haga clic" y el otro se llama "Buttonclick". El del constructor es el controlador "Haga clic" y los disparos, sin importar en qué parte del control, haga clic. El controlador "Buttonclick" solo dispara cuando hace clic en el botón en sí, no la flecha.

Prueba esto:

var button = new ToolStripSplitButton("text","path to image");
button.ButtonClick += clickEventHandler;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top