Я читал статью о переполнении стека по этой ссылке: Открыть связанное с файлом приложение, и у меня возникла еще одна проблема: мое приложение Windows Forms открывается, но я не вижу содержимого. Что мне сделать в своем приложении, чтобы обеспечить возможность открытия файла из проводника Windows? Пользователь перетаскивал файл в мой exe-файл winforms.
В приложении WinForms вам нужно будет получить аргументы командной строки из метода Environment.GetCommandLineArgs. Однако есть важное различие между вызовом этого метода и консольным приложением: первый элемент массива содержит имя файла исполняемой программы. Если имя файла недоступно, первый элемент равен String..::.Empty. Остальные элементы содержат любые дополнительные токены, введенные в командной строке. Я нашел этот код для хранения аргументов, но не знаю, какое событие на самом деле реализовать в моем приложении. В ветке MSDN нашел следующее.
[STAThread]
static void Main()
{
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1)
{
string filePath = args[1]; //First arg is the running process
if (File.Exists(filePath))
{
string name = Path.GetFileNameWithoutExtension(filePath);
File.Copy(filePath, name + ".dat");
//todo - delete input
}
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
Подробнее здесь: https://stackoverflow.com/questions/593 ... nt-listene