OpenFileDialog per Code wieder schließen

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    OpenFileDialog per Code wieder schließen

    Hallo zusammen,

    ich mache per OpenFileDialog1.ShowDialog() einen Ordner auf und gebe automatische einen Filenamen an.

    VB.NET-Quellcode

    1. With OpenFileDialog1
    2. OpenFileDialog1.InitialDirectory = "C:\Desktop"
    3. OpenFileDialog1.FileName = "Share.jpg"
    4. OpenFileDialog1.ShowDialog()
    5. End With

    Da die Datei schon bekannt ist, möchte ich, dass nicht der User das Öffnen betätigen muss, sondern dies automatisch erfolgt.

    Über: SendKeys.Send("{ENTER}") komme ich nicht zur Lösung, denn das Fenster ist ja noch offen.

    Wie muss ich meinen Code ergänzen, damit das geöffnete Fenster wieder automatisch geschlossen wird?

    Danke.

    Thema verschoben; Das Thema wird automatisch dort erstellt, wo man sich befindet, wenn man auf [* Neues Thema] klickt.
    CodeTags gesetzt ~VaporiZed

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

    1. Wozu hast Du einen With-Block, wenn Du die Abkürzung nicht nutzt?
    Also entweder

    VB.NET-Quellcode

    1. With OpenFileDialog1
    2. .InitialDirectory = "C:\Desktop"
    3. .FileName = "Share.jpg"
    4. .ShowDialog()
    5. End With
    oder ohne With

    VB.NET-Quellcode

    1. OpenFileDialog1.InitialDirectory = "C:\Desktop"
    2. OpenFileDialog1.FileName = "Share.jpg"
    3. OpenFileDialog1.ShowDialog()

    2. Wenn die Datei eh schon feststeht: Wozu überhaupt einen OpenFileDialog ?(
    Nutze einfach an der Stelle, wo Du was mit dem Dateinamen machst … den Dateinamen, den Du eh schon kennst!
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    Wenn die Datei eh schon feststeht: Wozu überhaupt einen OpenFileDialog

    jo, ich wüsste wie das geht - einen offenen Dialog schliessen - sag ich aber nicht, weil das wäre ein Bärendienst.
    Weil würde dir helfen zu coden, was eiglich Unfug ist, weil man das Ziel anders einfacher erreicht.

    Aber vielleicht verfolgst du ja ein aussergewöhnliches Ziel - des bräuchte ich aber eine nähere Erklärung.
    Hi

    Eine mögliche Option wäre anstelle des in .NET eingebauten Dialoges, das COM-Interface IFileDialog zu verwenden. Die besitzt auch eine Close Funktion um den Dialog zu schließen. Dennoch macht es keinen Sinn einen Dialog anzuzeigen wo der Benutzer sowieso nichts auswählen muss um eine Datei zu öffnen.
    Mfg -Franky-
    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!
    Wozu OpenFileDialog, wenn die Datei feststeht?

    Es ist eine Chat-App, wo ich über die IP Adresse dem anderen Teilnehmer ein Bild schicken will ( über einen Timer immer wider aktualisiert, aber immer mit demselben Namen und aus demselben Ordner ).

    clnt.SendFiles(myIPx, 65533, OpenFileDialog1.FileNames)

    Und in diesem Send - Befehl kann ich nur eine Datei auswählen. Schreibe ich anstelle OpenFileDialog1.FileNames in Anführungszeichen den Pfad, funktioniert der Befehl nicht mehr.
    Deshalb wollte ich es so lassen, dass die Datei ausgewählt werden muss, aber vom Programm dann, bis ich herausgefunden habe, wie es eleganter geht.

    Tweety2016 schrieb:

    Schreibe ich anstelle OpenFileDialog1.FileNames in Anführungszeichen den Pfad, funktioniert der Befehl nicht mehr.

    Das hat aber auch einen Grund, und genau nach diesem solltest du Fragen anstatt....

    Tweety2016 schrieb:

    Deshalb wollte ich es so lassen, dass die Datei ausgewählt werden muss

    ... irgendwelche wilden Workarounds zu suchen.

    also besser wäre du nennst uns Details zu dem was passiert/nicht passiert und/oder Fehlermeldungen welche du bekommst. So lernst du auch gleich etwas dazu.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Irgendwie werd ich das Gefühl nicht los, dass es nur eine Frage des Datentyps ist, was clnt.SendFiles als 2. Paramter haben will. Klingt aber sehr nach selbstgebastelt, da Sent Vergangenheitsform ist.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Tweety2016 schrieb:

    Schreibe ich anstelle OpenFileDialog1.FileNames in Anführungszeichen den Pfad, funktioniert der Befehl nicht mehr.

    OpenFileDialog1.FileNames gibt ein String-Array zurück.
    Schreib doch einfach deinen Pfad in ein Array

    VB.NET-Quellcode

    1. ​clnt.SendFiles(myIPx, 65533, {"c:\temp\x.jpg"})
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Genau das wäre am einfachsten, funktioniert aber leider nicht.
    Er springt sofort auf Catch ex As Exception und senden nichts.
    Ich versuche mal, ob ich vorher ein Araay definieren kann und setze es hier ein.
    Ist aber ein guter Anstoß, Danke.

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

    VaporiZed schrieb:

    was clnt.SendFiles als 2. Paramter haben will

    Tweety2016 schrieb:

    Catch ex As Exception
    Das wär genau der richtige Zeitpunkt, um den relevanten Code zu posten.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.