C #: я хочу передавать сообщения, такие как путь к файлу, в мое приложение форм, например консольное приложение, как бы я это сделал? - PullRequest
7 голосов
/ 12 февраля 2009

C #: я хочу передать сообщения, такие как путь к файлу, в мое приложение форм, например консольное приложение, как мне это сделать?

Мне сказали, что мне нужно найти основной метод для добавления аргументов string [], но я не знаю, какой из них будет в Windows Forms. Какой мой основной метод будет в приложении C # Windows Forms?

Ответы [ 5 ]

8 голосов
/ 12 февраля 2009

Хорошо, string [] args = Environment.GetCommandLineArgs () - лучший вариант. Но я оставлю следующий ответ в качестве альтернативы.

Найдите файл Program.cs, содержащий следующий фрагмент кода ...

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

и измените это на

static class Program
{

    public static string[] CommandLineArgs { get; private set;}

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
        CommandLineArgs = args;
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

Затем получите доступ к аргументам командной строки из вашей формы ...

Program.CommandLineArgs
3 голосов
/ 12 февраля 2009

Ваш метод Main() находится в файле Program.cs, как правило, так:

[STAThread]
static void Main()
{
  Application.EnableVisualStyles();
  Application.SetCompatibleTextRenderingDefault(false);
  Application.Run(new Form1());
}

Вы должны изменить Main() на следующее:

static void Main(string[] args)

У вас будет доступ к переданным аргументам.

Кроме того, вы можете получить доступ к аргументам, используя Environment.GetCommandLineArgs()

2 голосов
/ 12 февраля 2009

Есть один Main(), который находится внутри Program.cs. Но в WinForms приложение Environment.GetCommandLineArgs() будет лучшим вариантом.

2 голосов
/ 12 февраля 2009

в вашем публичном конструкторе используйте следующее:

string [] args = Environment.GetCommandLineArgs ();

это даст вам строковый массив аргументов.

2 голосов
/ 12 февраля 2009

Если вы хотите получить доступ к параметрам командной строки, используйте Environment.CommandLine

string args = Environment.CommandLine;

Вы можете сделать это независимо от того, есть ли у вас метод main с аргументами string [] в вашем коде.

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