Hallo,
hoffe einer von euch kann mich etwas unterstützen, denn ich bin momentan komplett durch einander.
ich habe in einen Dialog eine Combobox und ein Button.
die Combobox listet alle Dateien die in dem Verzeichnis liegen auf,
wenn ich jetzt auf den Button klicke soll diese Datei geöffnet werden, aber wie?
Lg
Hallo mcsas,
Process-Start startet die Datei mit dem Standard-Programm auf dem System.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
hallo coffeebean
das ich die Datei öffne mit Process.Start ist mir soweit auch klar, das sieht bei mir auch so aus:
Process.Start(Path1 + ComboBox1.Selected.Index)
bei diesen Process.Start kann aber was nicht passen, da er es nicht öffnet.
Path1 = ein hinterlegter String zum Verzeichnis.
Hallo mcsas,
wenn du dir anschaust, was die Methode für Parameter verlangt, siehst du etwaige Sachen. Unter anderem den kompletten Pfad zu der Datei. Abhängig davon, was du in deiner Combobox anzeigst / rausholst musst du den Pfad zu deiner Datei noch entsprechend parsen bzw. vervollständigen.
Aber das bekommst du schon hin 😉
[Artikel] Debugger: Wie verwende ich den von Visual Studio?
da er es nicht öffnet.
Das ist auch keine Fehlermeldung. Was gibst du denn rein? Was passiert denn? Schmeisst er einen Fehler? Macht der einfach gar nichts?
Wenn Path1 = dein Pfad ist fehlt noch der Dateiname. "Index" gibt aber vielleicht den Index an (als Zahl) welchen du ausgewählt hast in der Combobox, kann das sein? Schau mit dem Debugger rein. Vielleicht ist SelectedItem dein Freund.
Einfach mal unter: ComboBox.SelectedItem-Eigenschaft schauen 😉
Das fällt aber wieder unter: [Hinweis] Wie poste ich richtig? Punkt 1.1
Zum Zusammensetzen von Pfaden nutze bitte Path.Combine
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hallo Coffeebean,
ich habe es jetzt mal auf diesen code geändert.
private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(Path1 + comboBox2.SelectedItem);
}
der Dateiname wird ja in der Combobox aufgelistet, und der ausgewählte Dateiname soll dann mit dem Process.Start geöffnet werden.
der Debugger bringt folgende Fehlermeldung nachdem ich auf den Button geklickt hab.
Fehlermeldung:
Das System kann die angegebene Datei nicht finden
(Wahrscheinlich weil der Dateiname nicht aus der Combobox mit übernommen wird.
und so sieht der komplette code aus.
public partial class Form1 : Form
{
String Path1 = @"\\192.168.1.12\backup\Dateien\";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//combobox2 wird in Read Only Modus versetzt.
comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
//die Excel Dateien auflisten ohne die Dateiendung *.xls
foreach (string s in Directory.GetFiles(Path1, "*.xls"))
{
comboBox2.Items.Add(Path.GetFileNameWithoutExtension(s));
}
}
private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(Path1 + comboBox2.SelectedItem);
}
}
}
Hallo mcsas,
du fügst aber die Datei ohne Endung hinzu. Und dann versuchst du, die zu starten.
Bitte benutze endlich den Debugger. Damit siehst du, was drin steht und was du startest.
[Artikel] Debugger: Wie verwende ich den von Visual Studio?
Prüfe mal den Pfad, den er dir hinter der bereits geschriebenen Fehlermeldung bringt. Da steht auch WAS er genau nicht findet. Die Fehlermeldung ist eindeutig.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hallo mcsas,
verwende die Path-Klasse auch zum Zusammenbauen der Pfade.
Bitte beachte, dass du das Problem mit Hilfe des Debuggers und der Grundlagen, die wir hier voraussetzen, leicht hättest selber lösen können.
Wenn man die Meldung bekommt, dass die angegebene Datei nicht gefunden werden kann, schaut man sich doch als erstes an, welche(n) Datei(pfad) man angegeben hat. Das wäre sogar ohne Debugger leicht möglich gewesen, wenn du dir einfach mal hättest ausgeben lassen, was für einen Dateipfad du zusammengebaut hast.
Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1 und 1.1.1.
"gemeinsam mehr erreichen" bedeutet eben auch, aus eigener Kraft die nötigen Schritte zur Lokalisierung von Fehlern zu unternehmen und das Forum nicht unnötig in Anspruch zu nehmen.
herbivore