Click or drag to resize

ShellBrowserShowContextMenu Method (Point)

Shows the shell context menu for the files contained in MultiObjects or the active object.

Namespace:  Jam.Shell
Assembly:  ShellBrowser (in ShellBrowser.dll) Version: 7.1
Syntax
public string ShowContextMenu(
	Point p
)

Parameters

p
Type: System.DrawingPoint
Position on the screen at which the context menu should appear.

Return Value

Type: String
The shell command that was executed, an empty string if no shell comand was executed.
Examples
Showing the context menu for the Windows folder:
C#
using (ShellBrowser lShellBrowser = new ShellBrowser(@"C:\Windows"))
{
    lShellBrowser.ShowContextMenu(new System.Drawing.Point(100, 100));
}
Examples
Showing the context menu for 2 pdf files:
C#
using (ShellBrowser lShellBrowser = new ShellBrowser())
{
    lShellBrowser.Folder = @"C:\Pictures";
    lShellBrowser.MultiObjects.Add("Image1.jpg");
    lShellBrowser.MultiObjects.Add("Image2.jpg");
    lShellBrowser.ShowContextMenu(new System.Drawing.Point(100, 100));
}


ContextMenuStrip lAdditionalMenuItems = new ContextMenuStrip();

#region ShowContextMenu3
using (ShellBrowser lShellBrowser = new ShellBrowser(@"C:\Windows"))
{
    lShellBrowser.ShowContextMenu(new System.Drawing.Point(100, 100), lAdditionalMenuItems);
}
#endregion ShowContextMenu3

#region InvokeContextMenuCommand
using (ShellBrowser lShellBrowser = new ShellBrowser(@"C:\Windows"))
{
    lShellBrowser.InvokeContextMenuCommand(ShellCommand.Properties);
    //Next line is compatible also.
    lShellBrowser.InvokeContextMenuCommand("properties");
}
#endregion InvokeContextMenuCommand


string lFilePath = @"c:\windows\explorer.exe";

#region BeforeShellCommand

using (ShellBrowser shellBrowser = new ShellBrowser(lFilePath))
{
    //The following code shows some variants to stop a context menu item from being executed.
    shellBrowser.BeforeShellCommand += (s, e) =>
    {
        if (e.Verb == ShellCommand.Open)
            e.Cancel = true;
        //this is equivalent to:
        if (e.Verb == ShellContextMenuCommand.Open)
            e.Cancel = true;
        //or
        if (ShellCommand.IsOpen(e.Verb))
            e.Cancel = true;

        //not all context menu commands have a "verb". If it is empty, then you can at least access the caption:
        if (ShellCommand.IsEmpty(e.Verb))
            System.Diagnostics.Debug.WriteLine(e.Verb.Caption);
    };
    shellBrowser.ShowContextMenu(Cursor.Position);
}

#endregion BeforeShellCommand
See Also