Как вы показываете контекстное меню Windows Explorer из приложения C #? - PullRequest
14 голосов
/ 16 января 2009

У меня есть список файлов в моем приложении, и я хотел бы позволить людям щелкнуть правой кнопкой мыши по элементу и показать контекстное меню Проводника Windows. Я предполагаю, что мне нужно будет использовать интерфейс IContextMenu, но я не совсем уверен, с чего начать.

Ответы [ 3 ]

11 голосов
/ 16 января 2009

Я написал библиотеку, которая может вам помочь. Вы можете использовать элементы управления, предоставляемые библиотекой, или, если вы не хотите этого делать, просмотр кода может дать вам ответ.

Вы можете найти библиотеку по адресу: http://gong -shell.sourceforge.net /

Пожалуйста, дайте мне знать, если это помогло!

4 голосов
/ 20 августа 2009

Я нашел отличную статью Code Project, которая очень красиво объединяет все в один класс!

Контекстное меню оболочки Shell

Это так же просто, как следующий фрагмент кода:

// 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 []

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...