2011-12-09 39 views
47

¿Cuáles son las diferencias entre .ContextMenu y .ContextMenuStrip en Windows Forms?Diferencias entre .ContextMenu y .ContextMenuStrip

Ya sé lo que es ContextMenu, pero ¿cómo se diferencia ContextMenuStrip de ContextMenu?

+0

Sí, primero consulté MSDN pero no tuve información de utilidad. – thenonhacker

+16

¿Por qué los votos a favor? Para su información, casi todas las preguntas de StackOverflow sobre C# pueden ser respondidas por MSDN, Google, Bing e Internet. ¡Vale la pena preguntar aquí, porque los desarrolladores pueden querer encontrar las respuestas primero en StackOverflow! – thenonhacker

+5

Bajé todas las respuestas (pero no la pregunta) porque "ContextMenusStrip reemplaza ContextMenu" es un gran bostezo. Claro que lo hace. La pregunta que se hizo fue * ¿cuáles son las diferencias? * –

Respuesta

36

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

Usted podría preguntarse por qué Microsoft ha sustituido un valioso y popular del control con un recién llegado. El control ContextMenuStrip toma una buena idea y lo mejora. Funciona igual que el control ContextMenu. Todavía adjuntas un control ContextMenuStrip a otro control de usuario por cambiando la propiedad ContextMenuStrip del control. Sin embargo, Microsoft ha mejorado sustancialmente las características que se pueden agregar a un cont ContextMenuStrip ...

Mira los ejemplos en MSDN:

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

ContextMenuStrip reemplaza ContextMenu.Puede asociar un ContextMenuStrip con cualquier control y hacer clic con el botón derecho del mouse en muestra automáticamente el menú contextual. Puede mostrar un ContextMenuStrip mediante programación utilizando el método Show. ContextMenuStrip admite eventos de apertura y cierre cancelables a manejan la población dinámica y escenarios de múltiples clics. ContextMenuStrip admite imágenes, estado de comprobación de elementos de menú, texto, acceso a claves , accesos directos y menús en cascada.

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

Si un ContextMenu también se ha asignado al control, la ContextMenu tiene prioridad sobre el ContextMenuStrip.

+0

El último punto aquí, creo, responde la pregunta. Así que, básicamente, mantente alejado de ContextMenu por completo y usa ContextMenuStrip en su lugar. – nurchi

3

De acuerdo con la MSDN, la ContextMenuStrip sustituye a la clase ContextMenu:

Aunque ContextMenuStrip sustituye y añade funcionalidad a la de control ContextMenu de las versiones anteriores, ContextMenu es retenido por tanto compatibilidad con versiones anteriores y uso futuro si escoger.

Fuente: MSDN - ContextMenu

Editar: por qué el -1?

+2

Eso es un mal deporte, voto negativo y no comentar. ¿Cómo aprendería uno de eso ...? – Alex

+0

El -1 es porque no respondiste la pregunta de una manera no trivial. El OP preguntaba * cuáles son las diferencias, * y no vi ningún valor en su respuesta al repetir lo obvio. –

+1

No estoy de acuerdo con usted. En el momento de escribir, aún no había respuestas. La pregunta es '¿cómo es ContextMenuStrip diferente de ContextMenu', y he citado la respuesta de MSDN. De todas formas; Me gustaría saber qué hice mal después de un voto negativo. – Rhapsody

7

Desde el doc

ContextMenuStrip reemplaza ContextMenu.

+1

Gracias por señalar esto. MSDN es un pajar, puede haber muchas páginas sobre un control, y este responde la pregunta. – thenonhacker

1

Si Hoover sobre ContextMenu Usted notará que la reemplaza ContextMenuStrip pero ContextMenu se ha dejado para propósitos de compatibilidad.

2

contextMenu - msdn y contextMenuStrip - msdn

contextMenu - representa un menú contextual. Aunque ContextMenuStrip reemplaza y agrega funcionalidad al control ContextMenu de versiones anteriores, ContextMenu se conserva tanto para compatibilidad con versiones anteriores como para uso futuro si así lo desea.

ContextMenuStrip reemplaza y agrega funcionalidad para el control ContextMenu de versiones anteriores