OpenFileDialog leer und If/Then

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Snaptu.

    OpenFileDialog leer und If/Then

    Edit: Schon selbst gelöst!!!

    Nächste Frage :D

    Vorab: ich nutze Visual Basic 2010 Express

    Ich habe hier wieder zwei Buttons, eine TextBox und eine Checkbox.

    Mit Button1 kann man den OpenFileDialog öffnen. Der Dateipfad der ausgewählten Datei wird dann in der TextBox angezeigt. Mit Button 2 öffnet sich die ausgewählte Datei, aber nur, wenn die Checkbox aktiviert ist.

    Jetzt zur Frage: Wenn die Checkbox aktiviert ist, aber keine Datei ausgewählt ist, soll sich automatisch der OpenFileDialog öffnen. Wie geht das?

    Müsste ja:
    If CheckBox1.Checked = True AND ??? Then
    OpenFileDialog1.ShowDialog()
    End If

    Liebe Grüße und Danke im Vorraus
    ~P1xel

    Edit: Hab es schon selbst herausgefunden, einfach:

    If CheckBox1.Checked = True AND TextBox1.Text = "" Then
    OpenFileDialog1.ShowDialog()
    End If

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „P1xelfehler“ ()

    P1xelfehler schrieb:

    herausgefunden
    Das ist doch grottenschlecht.
    Ein Button genügt, eine CheckBox brauchst Du auch nicht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    P1xelfehler schrieb:

    doch
    OK, CheckBox ja, 2. Button - welcher wäre das?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    P1xelfehler schrieb:

    "Start"-Button
    AHa.
    Entweder der Haken ist gesetzt, da genügt der "..."-Button, wenn der Haken nicht gesetzt ist, brauchst Du den "Start"-Button.
    Bedienphilosophie.
    Ich würde den Haken weglassen und so tun, als wäre er immer gecheckt. Dann gäbe es nicht den "..."-Button, sondern nur den "Start"-Button.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Automatisch öffnen würde für mich auch heißen das ich nach dem OpenfileDialog sich sofort die Datei öffnet ohne den Start-Button zu drücken...
    Wie mein Vorredner schon sagt ergibt diese Checkbox keinen Sinn und irritiert eigentlich nur unnötig. Lass die Datei beim Klick auf Start öffnen und gut ist.

    Als kleiner Tipp für die Zukunft:

    VB.NET-Quellcode

    1. If CheckBox1.Checked AndAlso String.IsNullOrEmpty(TextBox1.Text) Then
    2. OpenFileDialog1.ShowDialog()
    3. End If


    CheckBox.Checked gibt dir schon den Zustand in Form von True or False zurück somit ist eine erneute Frage danach unnötig.
    TextBox1.Text = "" ist unschön und im normalfall prüft man so nicht ob eine TextBox leer ist. Siehe oben

    Weiters benenne bitte deine Controls ordentlich. Ich frag dich in nem Jahr was in TextBox1 steht und du weißt es garantiert nicht mehr. Nenn sie z.b. tbfilepath.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Snaptu“ ()

    hmmm....

    Also es kann ja sein, dass der Benutzer (nicht ich) die Datei schon geöffnet hat. Dann macht er den Haken bei "Automatisch Öffnen" raus und wählt die Datei aus.

    Vielleicht mache ich das auch einfach viel zu kompliziert. So kann ich es auch machen:

    Die Checkbox "Automatisch öffnen" kommt weg und wenn keine Datei ausgewählt ist, prüft das Programm, ob schon eine Excel-Datei offen ist (Wie mache ich das???) und sollte keine offen sein, kommt eine Fehlermeldung. Was haltet ihr davon?

    Frage: Soll ich für mein ganzes Programm einen neuen Thread erstellen?

    Beiträge zusammengefügt. ~Trade

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Trade“ ()

    Bitte unterlasse das vollständige Zitieren eines Beitrags, wenn dieser über Dir steht. (Vollzitate)
    Stattdessen reicht eine normale Antwort oder
    @'User' zum Erwähnen vollkommen aus.
    Zudem sind Pushs nach nur einer halben Stunde(!) nicht erlaubt. Editiere in einem solchen Fall bitte Deinen bisherigen Beitrag.

    Dein Programm kannst Du im Showroom in der richtigen Kategorie, unter Beachtung der Spezialregeln, vorstellen.
    Unsere Boardregeln hast Du wohl nicht gelesen, da steht das alles drin und das ist auch Deine Pflicht hier als Nutzer, sich diese durchzulesen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    nein bleib in diesem Thread bitte,

    du hast mehrere Fälle die eintreten können und diese musst du bei dem Klick auf Start behandeln.

    1. Datei ist ausgewählt und kein Excel ist offen
    2. Datei ist ausgewählt und ein Excel ist schon geöffnet
    3. keine Datei ausgewählt (hier könntest du den Button Start sogar .Enabled = False setzen)

    wie du auf diese Fälle reagierst ist dir überlassen. Bei der Abfrage ob ein Programm (in deinem Fall Excel) offen ist hilft dir die Process-Klasse
    Wenn du ein Excel nebeher offen haben darfst und es darf nur nicht die selbe Datei sein dann musst du mit dem Pfad vom OpenFileDialog checken ob in Excel genau dieses Workbook geöffnet ist.

    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.