2011-12-09 29 views
47

Quali sono le differenze tra e .ContextMenuStrip in Windows Form?Differenze tra .ContextMenu e .ContextMenuStrip

So già cosa è un ContextMenu, ma come è ContextMenuStrip diverso da ContextMenu?

+0

Sì, ho controllato MSDN prima ma nessuna informazione utile. – thenonhacker

+16

Gee, perché i downvotes? FYI, quasi tutte le domande StackOverflow su C# possono trovare risposta da MSDN, Google, Bing e Internet. Vale la pena chiedere qui, perché gli sviluppatori potrebbero voler trovare prima le risposte in StackOverflow! – thenonhacker

+5

Ho downvoted ogni risposta (ma non la domanda) perché "ContextMenusStrip sostituisce ContextMenu" è un grande sbadiglio. Certo che lo fa. La domanda posta era * quali sono le differenze? * –

risposta

36

http://www.informit.com/articles/article.aspx?p=606224&seqNum=2

si potrebbe chiedere perché Microsoft ha sostituito un prezioso e popolare di controllo con un nuovo arrivato. Il controllo ContextMenuStrip prende una buona idea e lo rende migliore. Funziona proprio come il controllo ContextMenu. È ancora possibile allegare un controllo ContextMenuStrip a un altro controllo utente tramite modificando la proprietà ContextMenuStrip di quel controllo. Tuttavia, Microsoft ha notevolmente migliorato le funzioni che è possibile aggiungere a un cont ContextMenuStrip ...

un'occhiata agli esempi in MSDN:

http://msdn.microsoft.com/en-us/library/system.windows.forms.contextmenustrip.aspx

ContextMenuStrip sostituisce ContextMenu.È possibile associare un ContextMenuStrip con qualsiasi controllo e un clic con il pulsante destro del mouse visualizza automaticamente il menu di scelta rapida. È possibile mostrare un ContextMenuStrip programmaticamente utilizzando il metodo Show. ContextMenuStrip supporta eventi di apertura e chiusura cancellabili su gestire la popolazione dinamica e gli scenari con più clic. ContextMenuStrip supporta le immagini, lo stato di controllo delle voci di menu, il testo, l'accesso alle chiavi , i collegamenti e i menu a cascata.

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.contextmenustrip.aspx

Se un ContextMenu è stato anche assegnato al controllo, il ContextMenu prevale sul ContextMenuStrip.

+0

L'ultimo punto qui, penso, risponde alla domanda. Quindi, in pratica, stai lontano da ContextMenu e usa ContextMenuStrip. – nurchi

3

Secondo il MSDN, il ContextMenuStrip sostituisce la classe ContextMenu:

Anche se ContextMenuStrip sostituisce e aggiunge funzionalità al il controllo ContextMenu delle versioni precedenti, ContextMenu viene mantenuto per sia la compatibilità a ritroso e per utilizzo futuro se si scegliere.

Fonte: MSDN - ContextMenu

Edit: perché il -1?

+2

Questo è lo sport scorretto, il downvoting e non i commenti. Come si impara da quello ..? – Alex

+0

Il -1 è perché non hai risposto alla domanda in modo non banale. L'OP chiedeva * quali sono le differenze * e non ho visto alcun valore nella tua risposta che riaffermi l'ovvio. –

+1

Non sono d'accordo con te. Al momento della scrittura, non c'erano ancora risposte. La domanda è 'in che modo ContextMenuStrip è diverso da ContextMenu' e ho citato la risposta da MSDN. Comunque; Mi piacerebbe sapere cosa ho fatto di sbagliato dopo un downvot. – Rhapsody

7

Dal doc

ContextMenuStrip sostituisce ContextMenu.

+1

Grazie per aver segnalato questo. MSDN è un tale pagliaio, ci possono essere molte pagine su un controllo, e questo risponde alla domanda. – thenonhacker

1

Se Hoover sopra ContextMenu si noterà che ContextMenuStrip sostituisce ma ContextMenu è stato lasciato per ragioni di compatibilità.

2

contextMenu - msdn e contextMenuStrip - msdn

contextMenu - Rappresenta un menu di scelta rapida. Sebbene ContextMenuStrip sostituisca e aggiunga funzionalità al controllo ContextMenu delle versioni precedenti, ContextMenu viene mantenuto per compatibilità con le versioni precedenti e per uso futuro, se lo si desidera.

ContextMenuStrip sostituisce e aggiunge funzionalità al controllo ContextMenu delle versioni precedenti