将命令行参数传递给按钮文本
Passing Command Line Argument to Button Text
我创建了一个简单的应用程序来通知用户正在发生的事情。它由一个按钮组成,当命令行传递给它时,它将显示为按钮的文本 属性。我想要完成的是,如果没有指定命令行参数,它将显示一条默认消息。我是 C# 的新手,所以请保持温柔...这是我目前所掌握的。
private void Form1_Load(object sender, EventArgs e)
{
string[] passedinargs = Environment.GetCommandLineArgs();
if (passedinargs == null)
{
btnNotify.Text = "Please Start from Command Line";
}
else
{
btnNotify.Text = passedinargs[1];
}
当运行时,给出了这个Execption:
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in Notify.exe
突出显示 btnNotify.Text = passedinargs[1];
。
有什么建议吗?
What I want to accomplish is that if no command line arguments are specified, it will display a default message.
这表明您应该使用 Length
属性 检查参数的长度。所以像:
private void Form1_Load(object sender, EventArgs e)
{
string[] args = Environment.GetCommandLineArgs();
btnNotify.Text = args.Length < 2
? "Please provide an argument on the command line"
: args[1]; // First command-line argument.
}
我很确定 Environment.GetCommandLineArgs()
永远不会 return 为空。如果发现确实如此,则可以在条件中使用 args == null || args.Length < 2
。
passedinargs 是一个数组,可能包含 1 个或多个元素。
第一个元素(即 passedinargs[0])始终是可执行文件名,其余(0 个或多个)是剩余的命令行争论。
如果你想使用 passedinargs[1] (这是可执行文件名后的第一个命令行参数),你需要验证它通过检查 passedinargs.Length.
存在
所以,我的建议是修改你的条件和查询:
if (passedinargs == null || passedinargs.Length < 2)
{
btnNotify.Text = "Please Start from Command Line";
}
...
我创建了一个简单的应用程序来通知用户正在发生的事情。它由一个按钮组成,当命令行传递给它时,它将显示为按钮的文本 属性。我想要完成的是,如果没有指定命令行参数,它将显示一条默认消息。我是 C# 的新手,所以请保持温柔...这是我目前所掌握的。
private void Form1_Load(object sender, EventArgs e)
{
string[] passedinargs = Environment.GetCommandLineArgs();
if (passedinargs == null)
{
btnNotify.Text = "Please Start from Command Line";
}
else
{
btnNotify.Text = passedinargs[1];
}
当运行时,给出了这个Execption:
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in Notify.exe
突出显示 btnNotify.Text = passedinargs[1];
。
有什么建议吗?
What I want to accomplish is that if no command line arguments are specified, it will display a default message.
这表明您应该使用 Length
属性 检查参数的长度。所以像:
private void Form1_Load(object sender, EventArgs e)
{
string[] args = Environment.GetCommandLineArgs();
btnNotify.Text = args.Length < 2
? "Please provide an argument on the command line"
: args[1]; // First command-line argument.
}
我很确定 Environment.GetCommandLineArgs()
永远不会 return 为空。如果发现确实如此,则可以在条件中使用 args == null || args.Length < 2
。
passedinargs 是一个数组,可能包含 1 个或多个元素。 第一个元素(即 passedinargs[0])始终是可执行文件名,其余(0 个或多个)是剩余的命令行争论。 如果你想使用 passedinargs[1] (这是可执行文件名后的第一个命令行参数),你需要验证它通过检查 passedinargs.Length.
存在所以,我的建议是修改你的条件和查询:
if (passedinargs == null || passedinargs.Length < 2)
{
btnNotify.Text = "Please Start from Command Line";
}
...