Question

J'essaie de comprendre ce que je dois faire pour remplacer le comportement du contrôle ToolStripDropDown sur System.Windows.Forms où si vous utilisez ce constructeur:

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

alors le menu déroulant ne s'affichera que si je maintiens la souris enfoncée et si j'utilise cet autre

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

alors la liste déroulante s'affiche lorsque je clique.

Il est clair pour moi que fournir un gestionnaire d'événement de clic est très explicite en disant "hé, quand je clique, exécute ceci" mais dans le cas d'un ToolStripSplitButton, la distinction est un peu floue en raison de la nature fractionnée du contrôle lui-même.

Donc, ce que j'aime faire, c'est a) Lorsque l'utilisateur clique sur la partie bouton du ToolStripSplitButton, le gestionnaire d'événements click s'exécute normalement b) Lorsque je clique OU appuie avec la souris sur la partie fléchée du code générique, le menu déroulant s'affiche

Existe-t-il une propriété / méthode OOB pour faire exactement cela?

Merci

Était-ce utile?

La solution

Le ToolStripSplitButton dispose de deux gestionnaires de clics.L'un s'appelle "Click" et l'autre "ButtonClick".Celui du constructeur est le gestionnaire "Click" et se déclenche quel que soit l'endroit du contrôle sur lequel vous cliquez.Le gestionnaire "ButtonClick" se déclenche uniquement lorsque vous cliquez sur le bouton lui-même, pas sur la flèche.

Essayez ceci:

var button = new ToolStripSplitButton("text","path to image");
button.ButtonClick += clickEventHandler;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top