ToolstripsplitButton Behavior Ancesride
-
28-10-2019 - |
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
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;