将args(arguments)传递给窗体表单应用程序

时间:2009-01-21 11:10:03

标签: c# windows arguments

我的Windows应用程序接受args,我使用它来设置Window行为

问题是我需要在一些参数中传递文本,但是我的应用程序将其视为多个args,所以,这个:

"http://www.google.com/" contact 450 300 false "Contact Info" true "Stay Visible" true

实际上有 11 个参数,而不是我期待的 9

“联系信息”“保持可见”作为唯一参数传递的技巧是什么?

3 个答案:

答案 0 :(得分:6)

您是否直接从命令行运行它?如果是这样,我希望工作得很好。 (顺便说一句,我假设您正在使用Main方法中的参数?)

例如,这是一个小测试应用程序:

using System;

class Test
{
    static void Main(string[] args)
    {
        foreach (string arg in args)
        {
            Console.WriteLine(arg);
        }
    }
}

执行:

>test.exe first "second arg" third
first
second arg
third

这是一个控制台应用程序,但就传递给Main方法的内容而言,它与WinForms之间没有区别。

答案 1 :(得分:2)

MSDN says,它应该按照你提到的方式工作。

class CommandLine
{
    static void Main(string[] args)
    {
        // The Length property provides the number of array elements
        System.Console.WriteLine("parameter count = {0}", args.Length);

        for (int i = 0; i < args.Length; i++)
        {
            System.Console.WriteLine("Arg[{0}] = [{1}]", i, args[i]);
        }
    }
}

答案 2 :(得分:0)

您如何执行申请?
如果从其他应用程序执行它,您可能忘记正确格式化参数字符串:

String arguments = "First \"Sec ond\" Third Fourth \"Fi fth\""

将有五个参数,而

String arguments = "First Sec ond Third Fourth Fi fth"

会有七个。

如果参数位于快捷方式目标属性中,则同样适用:

"C:\My Path\MyApplication.exe" "Argument 1" Argument2 Argument3 "Argument 4"

而不是

"C:\My Path\MyApplication.exe" Argument 1 Argument2 Argument3 Argument 4