Mit erstem Mausklick auswählen, mit zweitem öffnen

DasBöse

Mitglied
Hallo,

wahrscheinlich ist meine Frage ganz einfach zu lösen. Mit einem Klick auf ein Label wähle ich eine Datei aus mit openFileDialog. So nun möchte ich aber wenn eine Datei ausgewählt ist bei Klick auf das gleiche Label die Datei ausführen. Das geht soweit ich weiß über openfiledialog.OpenFile();

Muss ich jetzt das Event Click zur Laufzeit ändern oder kann ich dort eine if-Abfrage einbauen? Wenn ja wie? Was muss ich überprüfen?

mFg
 
Das ist ganz einfach. Zuerst erstellst du dir eine Boolean Variable den du Standardmäßig auf false setzt. Danach erstellst du dir in deinem Label-Click Event eine if/else Abfrage, darin prüfst du ob deine Boolean Variable nicht mehr false ist (!=) ist das so führst du dein openFileDialog1.OpenFile() aus, ansonsten in der else prüfst du ob das openFileDialog1 mit einem "Ok" bestätigt wurde und am besten ob auch noch was ausgewählt wurde und setzt als letztes deine Boolean Variable auf true, damit du die Datei ausführen kannst und nicht mehr auswählen musst.
 
hmm dankeschön!! Jetzt hab ich nur noch das Problem:

Also das mit den If-Abfragen usw. klappt alles wunderbar. Auch geht er beim 2ten mal in den Code openFileDialog1.OpenFile() rein. Aber die Datei wird leider nicht geöffnet. Warum?

mFg
 
Code:
bool selected = false;

private void label1_Click(object sender, EventArgs e)
{
        if (selected != false)
        {   
                //Funktioniert bei mir auch nicht oO
                //openFileDialog1.OpenFile();
                //Nimm dann das hier
                System.Diagnostics.Process.Start(openFileDialog1.FileName);
        }
        else
        {
                if ((openFileDialog1.ShowDialog() == DialogResult.OK) && openFileDialog1.FileName != null)
                {
                    //Tu was auch immer
                    selected = true;
                }
            }
        }
 
ahh jetzt danke. Trotzdem würd mich interessieren warum das mit openFileDialog1.OpenFile() nicht ging. Wenn das jemand weiß kann er esgerne posten.

mFg
 
Ach man, ist klar warum OpenFile nicht so geht. Der Rückgabewert ist ein Stream! Benutzt lieber Process.Start, da OpenFile() dafür gedacht ist gleich den Inhalt auszulesen, sprich wenn du Textdateien oder so hast.
 
Zurück