2016-05-28 18 views
-2

Also im Grunde habe ich einen OpenFileDialog, wo der Benutzer einen Speicherort auswählen wird. Ich machte es so, dass es das Verzeichnis in einem Textfeld anzeigen würde. Aber was ich will, ist eine andere Taste, die dieses Verzeichnis nehmen und starten Sie mit ProcessStartInfo.Nehmen Sie Benutzereingaben und verwenden Sie es als Prozess

Openfiledialog, in TextBox zeigt:

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; 
     } 
    } 

Prozess:

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

Bitte geben Sie weitere Informationen? Was ist deine Frage/Problem? Oder möchten Sie nur wissen, wie man den startInfo.FileName füllt? Sie können einfach den Text von textBox1 verwenden: startInfo.FileName = textBox1.Text. – Odrai

+0

Ich habe es gerade aktualisiert. ;) – AaronKek

+0

Lesen Sie den zweiten Teil des ersten Kommentars :) – Odrai

Antwort

0

Da Sie bereits das Ergebnis des Openfiledialog in textBox1 sparen, können Sie es leicht in der Event-Handler button3_Click zugreifen.

Um die startInfo.FileName zu füllen:

* I eine zusätzliche IsNullOrWhiteSpace Prüfung hinzugefügt, so dass die Anwendung keinen weiteren Prozess starten, wenn der textBox1.Text leer.

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); 
}