Como você mostra o menu de contexto do Windows Explorer de um aplicativo C#?
-
19-08-2019 - |
Pergunta
Eu tenho uma listagem de arquivos no meu aplicativo e gostaria de permitir que as pessoas cliquem com o botão direito do mouse em um item e mostre o menu de contexto do Windows Explorer. Suponho que eu precisaria usar a interface IcontextMenu, mas não tenho muita certeza de por onde começar.
Solução
Há um tutorial muito bom (embora em C ++) sobre hospedar um icontextmenu no blog de Raymond Chen em 11 partes (em ordem):
Outras dicas
Eu escrevi uma biblioteca que poderia ajudá -lo. Você pode usar os controles fornecidos pela biblioteca ou, se não quiser fazer isso, examinar o código pode fornecer uma resposta.
Você pode encontrar a biblioteca em: http://gong-shell.sourceforge.net/
Por favor, deixe -me saber se isso ajudou!
Encontrei um ótimo artigo de projeto de código que encapsula tudo muito bem em uma classe!
Menu de contexto de shell do Explorer
É tão fácil quanto o seguinte snippet 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)));
A única coisa irritante é que é preciso uma variedade de fileInfo [] ou uma variedade de diretórios [], embora fosse muito fácil modificar a fonte ligeiramente para que fosse necessário uma matriz de arquivos de sistema [