C # winform открывается с контекстным меню, вызываемым правой кнопкой мыши, но как мне отобразить выбранный элемент? - PullRequest
3 голосов
/ 01 апреля 2011

У меня есть приложение C # WinForm, которое я создал для хранения файлов в отдельном безопасном месте на жестком диске.Я пытаюсь добавить функциональность в программу, добавив контекстное меню, вызываемое правой кнопкой мыши, поэтому, когда пользователь щелкает правой кнопкой мыши файл (или группу файлов) в окнах, моя программа находится в контексте, который они могут выбрать.Нет проблем, у меня эта часть проработана.Мне нужно программно получить этот список файлов и отправить его в программу, чтобы они уже были перечислены в списке.

Я уже делаю что-то похожее с множественным выбором в OFD, но я не хочу, чтобы им приходилось открывать программу, выбирать просмотр, находить файлы и выбирать их, когда они уже выбраны в окнах.

Есть тонна программ с такой функциональностью (например, свойства плюс, текстовая панель и т. Д.). Мне просто нужно толкнуть в правильном направлении, чтобы помочь мне понять это.

Заранее спасибо,

Дейв

Ответы [ 3 ]

2 голосов
/ 01 апреля 2011

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

В C # следующий код отобразит окно сообщения, содержащее каждый аргумент в командной строке:

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

Но если вы не хотите обращаться к ним в методе Main, вы также можете использовать класс Environment, который предоставляет статический метод GetCommandLineArgs .Он возвращает тот же массив строк, содержащий аргументы, и вы можете проходить через него таким же образом.

0 голосов
/ 02 апреля 2011

Я собираю все аргументы и отправляю их в 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 ALRec 
{
    ArrayList MyArrLst = new ArrayList();

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

Почему он запускает несколько экземпляров моего приложения?

0 голосов
/ 01 апреля 2011

Вот статья о том, как настроить параметры меню правого клика в Windows

Тогда, как говорит #CodyGray, используйте string[] args в вашем Main методе вашей программы, чтобы получить имена файлов

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