MRF*_*ius 94 c# command-line winforms
我有两个不同的WinForms应用程序,AppA和AppB.两者都运行.NET 2.0.
在AppA中我想打开AppB,但我需要将命令行参数传递给它.如何使用我在命令行中传递的参数?
这是我目前在AppB中的主要方法,但我认为你不能改变它吗?
static void main()
{
}
Run Code Online (Sandbox Code Playgroud)
小智 177
使用winforms应用程序的args的最佳方法是使用
string[] args = Environment.GetCommandLineArgs();
Run Code Online (Sandbox Code Playgroud)
您可以将此与使用枚举相结合,以通过代码库巩固阵列的使用.
"你可以在应用程序的任何地方使用它,你不仅限于在main()方法中使用它,就像在控制台应用程序中一样."
发现于:HERE
Tho*_*mas 113
static void Main(string[] args)
{
// For the sake of this example, we're just printing the arguments to the console.
for (int i = 0; i < args.Length; i++) {
Console.WriteLine("args[{0}] == {1}", i, args[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,参数将存储在args
字符串数组中:
$ AppB.exe firstArg secondArg thirdArg
args[0] == firstArg
args[1] == secondArg
args[2] == thirdArg
Run Code Online (Sandbox Code Playgroud)
Jar*_*Par 12
您可以通过访问Environment.CommandLine属性来获取任何.Net应用程序的命令行.它将命令行作为单个字符串,但解析您正在寻找的数据应该不是非常困难.
具有空Main方法不会影响此属性或其他程序添加命令行参数的能力.
Sar*_*avu 10
考虑您需要开发一个程序,您需要通过该程序传递两个参数.首先,您需要打开Program.cs类并在Main方法中添加参数,如下所示,并将这些参数传递给Windows窗体的构造函数.
static class Program
{
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1(args[0], Convert.ToInt32(args[1])));
}
}
Run Code Online (Sandbox Code Playgroud)
在Windows窗体类中,添加一个参数化构造函数,它接受来自Program类的输入值,如下所示.
public Form1(string s, int i)
{
if (s != null && i > 0)
MessageBox.Show(s + " " + i);
}
Run Code Online (Sandbox Code Playgroud)
要对此进行测试,可以打开命令提示符并转到放置此exe的位置.给出文件名,然后是parmeter1 parameter2.例如,见下文
C:\MyApplication>Yourexename p10 5
Run Code Online (Sandbox Code Playgroud)
从上面的C#代码,它将提示具有值的Messagebox p10 5
.
小智 7
你使用这个签名:(在c#中)static void Main(string [] args)
本文也可以帮助解释主要功能在编程中的作用:http://en.wikipedia.org/wiki/Main_function_ ( programming )
这是一个小例子:
class Program
{
static void Main(string[] args)
{
bool doSomething = false;
if (args.Length > 0 && args[0].Equals("doSomething"))
doSomething = true;
if (doSomething) Console.WriteLine("Commandline parameter called");
}
}
Run Code Online (Sandbox Code Playgroud)