Struttura del comportamento di strumenti
-
28-10-2019 - |
Domanda
Sto cercando di capire cosa devo fare per sovrascrivere il comportamento del ToolStripDropDown
controllo su System.Windows.Forms
dove se usi questo costruttore:
var button = new ToolStripSplitButton("text","path to image", clickEventHandler)
Quindi il discesa mostrerà solo se mantengo il mouse premuto e se lo uso altro
var button = new ToolStripSplitButton("text","path to image")
Quindi il discesa verrà visualizzato quando faccio clic.
È chiaro per me che fornire un gestore di eventi click è molto esplicito nel dire "ehi, quando faccio clic, eseguire questo" ma nel caso di a ToolStripSplitButton
La distinzione si confonde un po 'a causa della natura divisa del controllo stesso.
Quindi, quello che mi piace fare è a) quando l'utente fa clic sulla parte del pulsante del ToolStripSplitButton
, il gestore dell'evento click si esegue come normale b) quando faccio clic o premo il mouse sulla parte della freccia del ToolStripSplitButton
Quindi il discesa mostra
Esiste una proprietà/metodo OOB per fare proprio questo?
Grazie
Soluzione
Il ToolStripSplitButton Ha due gestori di clic. Uno si chiama "Click" e l'altro si chiama "ButtonClick". Quello dal costruttore è il gestore "clicca" e spara indipendentemente da dove nel controllo si fa clic. Il gestore "ButtonClick" spara solo quando si fa clic sul pulsante stesso, non la freccia.
Prova questo:
var button = new ToolStripSplitButton("text","path to image");
button.ButtonClick += clickEventHandler;