2016-05-28 6 views
-2

Итак, у меня есть 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); 
    } 
+0

Просим предоставить дополнительную информацию? Каков ваш вопрос/проблема? Или вы хотите знать, как заполнить startInfo.FileName? Вы можете просто использовать текст textBox1: startInfo.FileName = textBox1.Text. – Odrai

+0

Я только что обновил его. ;) – AaronKek

+0

Прочитайте вторую часть первого комментария :) – Odrai

ответ

0

Поскольку вы уже сохранить результат 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); 
} 
Смежные вопросы