使用右键单击上下文菜单打开C#winform,但如何显示所选项?

时间:2011-04-01 00:38:36

标签: c# .net winforms contextmenu selecteditem

我创建了一个C#WinForm应用程序,用于将文件存储在硬盘驱动器上的单独安全位置。我试图通过添加右键单击上下文菜单为程序添加功能,因此当用户右键单击Windows中的文件(或文件组)时,我的程序就在上下文中供他们选择。没问题,我已经解决了这个问题。我需要的是以编程方式获取文件列表并将其发送到程序,以便它们已列在列表框中。

我已经在OFD中做了类似于多选的东西,但是我不希望他们必须打开程序,选择浏览,找到文件并在他们已经在windows中选择它们时选择它们。

有大量程序具有此功能(如属性加,文本板等等)。我只需要朝正确的方向推进,以帮助我解决这个问题。

提前致谢,

戴夫

3 个答案:

答案 0 :(得分:2)

如果我正确理解您已经实现的内容,那么所有文件应该在程序的命令行中显示为参数。您只需要一种方法来提取每个文件路径并在列表视图中显示它们。

在C#中,以下代码将在命令行中显示一个包含每个参数的消息框:

static void Main(string[] args)
{
    foreach(string arg in args)
    {
        MessageBox.Show(arg);
    }
}

但是如果您不想在Main方法中访问这些内容,您还可以使用提供静态GetCommandLineArgs methodEnvironment类。它返回包含参数的相同字符串数组,您可以以相同的方式遍历它。

答案 1 :(得分:0)

以下是关于如何customise Right-Click Menu Options in Windows

的文章

然后正如#CodyGray所说,使用你程序的string[] args方法中的Main来获取文件名

答案 2 :(得分:0)

我正在收集所有参数并将它们发送到ArrayList。

    static void Main(string[] args)
    {
        ArrayList myAL = new ArrayList();

        foreach (string arg in args)
        {
            myAL.Add(arg);
        }

        ALRec nalr = new ALRec();
        nalr.getArrList(myAL);

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }

将其发送到ALRec Class

class ALRec 
{
    ArrayList MyArrLst = new ArrayList();

    public void getArrList(ArrayList AL)
    {
        MyArrLst = AL;
    }
}

为什么要启动我的App的多个实例?