2009-07-29 7 views
6

Sono relativamente nuovo a VS e C# ma ho anni di esperienza in Delphi. Uno dei miei componenti preferiti durante la progettazione di GUI in Delphi è ActionManager: un modo centralizzato per assegnare i gestori di eventi alle azioni e abilitarle/disabilitarle. Sorprendentemente, non riesco a trovare nulla di simile in Visual Studio 2008 Professional. Sono certo che ci dovrebbero essere implementazioni di terze parti ma preferirei qualcosa di standard.C'è l'alternativa ActionManager di Delphi in Visual Studio

Qualcuno può suggerirmi qualcosa per questo? Forse c'è un modo alternativo per gestire in modo efficace le azioni della GUI che mi mancano?

+0

Non intendi TActionList? TActionManager non è più adatto a menu e barre degli strumenti di fantasia? –

+1

Possibile duplicato: http://stackoverflow.com/questions/489376/is-there-net-equivalent-to-delphis-actionlist –

risposta

3

In WPF ci sono Commands, che sono concettualmente simili.

+0

Grazie, sembra molto vicino, ma sfortunatamente non è disponibile per WinForms. Non sono sicuro se sia il momento di passare a WPF, ma sembra che MS posizioni WinForms come tecnologia obsoleta. Non molto buono per loro. – koldovsky

1

Mi è piaciuto anche ActionManager. Non lo sapevo in quel momento, ma tutto ciò che serve è un'immaginaria implementazione di Model-View-Controller. Con il senno di poi, Delphi era troppo avanzato per una comunità di sviluppatori impreparati. Cool

Torna alla tua domanda, C# ha il concetto di eventi e delegati, che sono equivalenti alle azioni e ai loro gestori. Si legano gli eventi di controllo (o le azioni della GUI) ai delegati. Ad esempio,

mybutton.Click += HandleMyButtonClick; 

Click sarebbe un delegato con la firma void (object sender, EventArgs e). Questa firma sarebbe seguita dal metodo HandleMyButtonClick, come questo.

void HandleMyButtonClick(object sender, EventArgs e) 

Sotto la documentazione di classe dei controlli, ci sarà una sezione che elenca tutti gli eventi che vengono generati. Questi eventi descriveranno anche la firma dei delegati necessari per gestirli.

+0

Posso chiedere perché il punteggio negativo? –

+2

Non ho fatto downvoting, ma le azioni fanno di più quindi semplicemente chiamando un metodo. Offrono anche un posto centrale per fornire una didascalia, un'immagine e un modo per "aggiornare" l'azione come disabilitarla. –

+0

Da qui il mio uso di "Fancy Implementation of MVC" 8-) Il post originale non era chiaro su quanto vicino ad ActionManager volesse essere un'alternativa. Immaginavo che non conoscesse delegati ed eventi e che potesse costruire il suo ActionManager con questa conoscenza. Grazie comunque per la giustificazione. –