quitar - ¿Cómo se muestra el menú contextual del Explorador de Windows desde una aplicación C#?
no aparece menu click derecho (3)
He escrito una biblioteca que podría ayudarte. Puede usar los controles proporcionados por la biblioteca o, si no desea hacerlo, mirar el código puede darle una respuesta.
Puede encontrar la biblioteca en: http://gong-shell.sourceforge.net/
Por favor, hágame saber si esto ayudó!
Tengo una lista de archivos en mi aplicación y me gustaría permitir que las personas hagan clic derecho en un elemento y muestren el menú contextual del Explorador de Windows. Supongo que necesitaría usar la interfaz IContextMenu, pero no estoy seguro de por dónde empezar.
¡Encontré un excelente artículo de Code Project que encapsula todo muy bien en una sola clase!
Menú contextual del Explorer Explorer
Es tan fácil como el siguiente fragmento de código:
// Sample code
ShellContextMenu ctxMnu = new ShellContextMenu();
FileInfo[] arrFI = new FileInfo[1];
arrFI[0] = new FileInfo(this.treeMain.SelectedNode.Tag.ToString());
ctxMnu.ShowContextMenu(arrFI, this.PointToScreen(new Point(e.X, e.Y)));
Lo único molesto es que se necesita una matriz de FileInfo [] o una matriz de DirectoryInfo [] aunque fue MUY fácil modificar la fuente ligeramente para que tome una matriz de FileSystemInfo []
Hay un tutorial muy bueno (aunque en C ++) sobre alojar un IContextMenu en el blog de Raymond Chen en 11 partes (en orden):
- Incursión inicial
- Mostrando el menú contextual
- Ubicación de la invocación
- Contexto clave
- Manejo de mensajes de menú
- Mostrar ayuda en el menú
- Invocar el verbo predeterminado
- Optimizando para el comando predeterminado
- Agregar comandos personalizados
- Extensiones compuestas - base
- Extensiones compuestas - composición