Как вы показываете контекстное меню проводника Windows из приложения С#?
У меня есть список файлов в моем приложении, и я хотел бы разрешить людям щелкнуть правой кнопкой мыши на элементе и показать контекстное меню Windows Explorer. Я предполагаю, что мне нужно будет использовать интерфейс IContextMenu, но я не уверен, с чего начать.
Ответы
Ответ 1
Там очень хороший учебник (хотя и на С++) о размещении IContextMenu на блоге Raymond Chen в 11 частях (по порядку):
Ответ 2
Я написал библиотеку, которая могла бы вам помочь. Вы можете использовать элементы управления, предоставляемые библиотекой, или если вы не хотите этого делать, просмотр кода может дать вам ответ.
Вы можете найти библиотеку по адресу: http://gong-shell.sourceforge.net/
Пожалуйста, дайте мне знать, если это помогло!
Ответ 3
Я нашел отличную статью Code Project, которая инкапсулирует все очень красиво в один класс!
Контекстное меню оболочки обозревателя
Это так же просто, как следующий фрагмент кода:
// 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)));
Единственное неудобство заключается в том, что он принимает либо массив FileInfo [], либо массив DirectoryInfo [], хотя было очень просто немного изменить источник, чтобы потребовался массив FileSystemInfo []