2010-04-06 7 views
8

Ich versuche, Standard-Datei/Verzeichnis-Kontextmenü in WinForms-Anwendung anzuzeigen - Ich möchte den Benutzer ermöglichen, Dinge mit Dateien in meiner Anwendung als er zu tun könnte im Explorer.Anzeigen von Windows (Datei/Verzeichnis) Kontextmenü in C# winforms Anwendung

Es sollte zwei Optionen sein

  • Popup das Kontextmenü mit einigen Systemaufruf
  • alles aus dem System-Kontextmenü lesen und in meinem Kontextmenü einfügen

Könnten Sie bitte zeigen ich in die richtige Richtung? Danke

Antwort

7

Ich habe eine .NET-Bibliothek geschrieben, um dies zu ermöglichen. Sie können es hier finden:

http://gong-shell.sourceforge.net/

Die Klasse, die Sie suchen sind, ist ShellContextMenu innerhalb dieser Bibliothek.

+0

Groky diese Bibliothek, die Sie erstellt haben, ist erstaunlich. Ich weiß nicht so viel über Gewinnformen, also hatte ich eine schwere Zeit zu versuchen, zu sehen, wie Sie das Kontextmenü implementiert haben. Ich muss das in wpf implementieren. Ich bin sicher, dass es ein Essay sein wird, um es auf wpf zu implementieren, sobald ich weiß, wie man es in Gewinnformen macht. –

+0

Auch brauche ich es nicht wie der Dateidialog aussehen. Ich habe nur einen Container auf meiner WPF-Anwendung, die Dateien (Symbole mit Beschriftungen) anzeigt und ich möchte Benutzern ermöglichen, das gleiche Kontextmenü zu sehen, das sie sehen, wenn sie mit der rechten Maustaste auf diese Datei im Windows Explorer klicken. –

+0

@TonoNam: Leider habe ich das Kontextmenü nicht implementiert - ich habe nur die Windows Shell API verwendet, um das vom Explorer verwendete Kontextmenü anzuzeigen. Ich habe keine Ahnung, wie Sie es in WPF implementieren würden, oder selbst wenn so etwas möglich wäre, Entschuldigung. – Grokys

3

Dies kann sich als sehr anspruchsvoll sein, so schlage ich vor zwei Lösungen:

  1. (Easy) die Bibliothek verwenden, die Groky vorgeschlagen, tun, was in FolderSizes getan. Das Explorer-Kontextmenü wird als Unterkontextmenü angezeigt. Sie können dies simulieren, indem Sie das Explorer-Menü anzeigen, wenn der Eintrag "Explorer Operation" aktiviert ist.

    enter image description here

  2. (Hard) Wenn das nicht ausreicht, können Sie den ganzen Weg gehen und die Menüpunkte aus der Schale erhalten, und Ihr eigenes Menü erstellen. Dieser CodeProject-Artikel (http://www.codeproject.com/KB/miscctrl/FileBrowser.aspx) durchläuft den Prozess zum Aufzählen und Aufrufen von Shell-Befehlen für ein bestimmtes Shell-Objekt und zum Aufzählen von Untermenüs.

+0

Kevin bedankt sich sehr für die Hilfe. Ich hatte einen geschäftigen Tag. Ich werde es so bald wie möglich überprüfen. –

Verwandte Themen