【问题标题】:Take user input and use it as Process接受用户输入并将其用作流程
【发布时间】:2016-05-28 12:36:56
【问题描述】:

所以基本上,我有一个 OpenFileDialog,用户将在其中选择一个位置。 我做到了,它会在文本框中显示目录。 但我想要的是有另一个按钮,它将获取该目录并使用 ProcessStartInfo 启动它。

OpenFileDialog,在TextBox中显示:

    public void button4_Click(object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Title = "Open Arma 3";
        ofd.Filter = "EXE file|*.exe";

        if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            textBox1.Text = ofd.FileName;
        }
    }

流程:

    private void button3_Click(object sender, EventArgs e)
    {
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = //RESULT OPENFILEDIALOG SHOULD BE HERE 
        startInfo.Arguments = @"-window -useBE -mod=e:\Aaron\Addons\@CBA_A3";
        Process.Start(startInfo);
    }

【问题讨论】:

  • 请提供更多信息?你的问题/问题是什么?还是只想知道startInfo.FileName怎么填?您可以只使用 textBox1 的文本:startInfo.FileName = textBox1.Text.
  • 我刚刚更新了它。 ;)
  • 阅读第一条评论的第二部分:)
  • 已经用 startInfo.FileName = textBox1.Text 弄明白了。我尝试了很多东西。很奇怪,我似乎没有尝试过。谢谢!
  • 无论如何,另一个快速的问题。在程序的另一部分,我也这样做。但是在用户选择的方向之后,必须有另一部分的方向。例如,用户会选择; C\User\Name\Afolder 我仍然需要将其他文件夹放在后面; C\User\Name\Afolder\Anotherfolder 我该怎么做?

标签: c# process openfiledialog


【解决方案1】:

由于您已经将 OpenFileDialog 的结果保存在 textBox1 中,您可以在 button3_Click 事件处理程序中轻松访问它。

填写startInfo.FileName:

*我添加了一个额外的 IsNullOrWhiteSpace 检查,因此如果 textBox1.Text 为空,应用程序不会启动另一个进程。

if(!string.IsNullOrWhiteSpace(textBox1.Text)
{
      ProcessStartInfo startInfo = new ProcessStartInfo();
      startInfo.FileName = textBox1.Text
      startInfo.Arguments = @"-window -useBE -mod=e:\Aaron\Addons\@CBA_A3";
      Process.Start(startInfo);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    相关资源
    最近更新 更多