Programmabsturz bei OpenFileDialog

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von CR_ZOPF.

    Programmabsturz bei OpenFileDialog

    Hallo Zusammen,
    ein äußerst kurioses Problem stelllt sich bei mir augenblicklich dar. Der Benutzer soll in einer Maske einen Button unwählen können um in dem sich dann öffnenden OpenFileDialog eine Datei auszuwählen. Nur leider, warum auch immer, öffnet sich der OpenFileDialog nicht und das Programm wird im Debbuging-Modus ohne jede Fehlermeldung abgebrochen, bzw. beendet. Da ich nicht weiß, woher dieses Problem rührt hoffe ich hier auf Eure Hilfe. Ich habe auch ein anderes Projekt geöffnet in der eine vergleichbare (eigentlich identische) Vorgehensweise programmiert ist und bis dato einwandfrei lief - doch auch hier zeigt sich das selbe Problem.

    Nachfolgend der Code um den OpenFileDialog als Reaktion auf das Anklicken eines Buttons:

    VB.NET-Quellcode

    1. Imports System.Data.OleDb
    2. Imports System.Configuration
    3. Imports System.IO
    4. Imports System
    5. Imports System.Windows.Forms.Form
    6. Public Class ATAS_LOGIN
    7. Private Sub CTL_CBDB_Click(sender As System.Object, ByVal e As System.EventArgs) Handles CTL_CBDB.Click
    8. With OFD_CBDB
    9. If .ShowDialog() = DialogResult.OK Then
    10. Me.TXT_CBDB.Text = .FileName
    11. End If
    12. End With
    13. End Sub

    Kompilierungs-Einstellungen sind wie folgt:
    Konfiguration: Aktiv (Debug)
    Plattform: Aktiv (x86)
    Option Explizit: on
    Option Strikt: on
    Option Compare: binary
    Option Infer: on

    Auch eine zusätzliche Deklaration innerhalb der Class mit "Inherits System.Windows.Forms.Form" bringt nichts.

    Danke vielmals für Eure Hilfe... ich bin am Verzweifeln

    Gruß
    Markus

    Edit by Manschula: Für Code-Ausschnitte den entsprechenden Tag verwenden! --> VB-Tag eingefügt

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

    Hallo ....1973,

    bitte den Code in die entsprechden Tags packen - zwecks Lesbarkeit.

    Hast du den OpenFileDialog auf die Form gezogen oder erstellst du eine Instanz per Code ?

    Gruss

    mikeb69
    Also am code kannich nix weiters finden - kann natürlich immer an iwelchen SeitenEffekten liegen.

    MaThoPa1973 schrieb:

    Ich habe auch ein anderes Projekt geöffnet in der eine vergleichbare (eigentlich identische) Vorgehensweise programmiert ist und bis dato einwandfrei lief - doch auch hier zeigt sich das selbe Problem.
    Das klingt bissserl danach, dass dein System iwie verdaddelt ist.

    Du kannst auch eine kleine, lauffähige solution, die den Fehler reproduziert, zusammenzippen und als Datei anhängen. Wenn jmd. anders die problemlos laufen lässt, siehts sehr nach einer kaputten Installation aus.

    Oder - falls du hast - probiers auf einer virtuellen Maschine.
    Mache aus

    VB.NET-Quellcode

    1. With OFD_CBDB
    2. If .ShowDialog() = DialogResult.OK Then
    3. Me.TXT_CBDB.Text = .FileName
    4. End If
    5. End With
    dies:

    VB.NET-Quellcode

    1. Using OFD_CBDB As New OpenFileDialog
    2. With OFD_CBDB
    3. If .ShowDialog() = DialogResult.OK Then
    4. Me.TXT_CBDB.Text = .FileName
    5. End If
    6. End With
    7. End Using
    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!
    Hallo Leute,
    erst einmal vielen Dank für die Hilfe bezüglich des Einfügen des Quellcodes. Hab leider noch nicht raus wie man das macht aber ich werde es beim nächsten Mal versuchen.

    @RodFromGermany: Hatte bereits auch die Methode mit Using im Vorfeld schonmal probiert - auch jetzt noch mal - leider ohne Erfolg.

    @ErfinderdesRades: Eine virtuelle Maschine habe ich leider keine zur Verfügung. Eine lauffähige Lösoung will ich im Augenblick nur ungerne verteilen - nicht so lange ich nicht weiß wo genau das Problem liegt. Das Programm, auf dem ich es ebenfalls probiert habe und mir das Programm im Debbuging-Modus abkackt läuft in der installierten Version einwandfrei. Es scheint also irgendwie an meinem Visual Studio 2010 zu liegen (ist aber auf jeden Fall [m]eine Originalversion!) Ich werde wohl hingehen und erst einmal eine Reparatur meines Systems durchführen.

    Im Augenblick habe ich jedoch auch einige Probleme bei der Installation der automatischen Updates die von Microsoft versendet werden. Der hat bei mir einige Male Versucht Updates für NetFramework 3.5.1 ujnter Windows 7 und 4.0 unter Windos XP zu installieren (siehe anhängende Bilddatei). Kann das auch damit im Zusammenhang stehen?

    Danke vielmals für Eure Hilfe... ich verzweifle dann mal 'ne Runde weiter und versuche erst einmal das Update-Problem in den Griff zu kriegen.

    Gruß
    Markus
    Bilder
    • Updateprobleme.JPG

      136,5 kB, 750×444, 218 mal angesehen
    Hallo Leute,
    hier ein kurzer Zwischenstand zur Lage:

    1. .Net Framework 4.0 repariert! Im Anschluss konnte ich dann auch die Sicherheitsupdates zu .Net Framework 3.5.1 und 4.0 installieren.
    2. zusätzlich habe ich mein Visual Studio 2010 professional repariert (Wartungsmodus drüber fahren lassen).
    3. das Problem, dass das Programm bei Aufruf des OpenFile-Dialogs abbricht, besteht unverändert :cursing: ?(

    Ich habe absolut keine Ahnung was ich noch machen könnte... bin also für jeden weiteren Tipp dankbar.

    Gruß
    Markus

    PS: Ich habe jetzt mal ein kleines Test-Projekt erstellt und angehangen. 1 Formular mit Button, Textbox, OpenFile-Dialog und BrowserFolder-Dialog. Den bereits oben angegebenen Code habe ich entsprechend eingesetzt und die Steuerelemente entsprechend benannt. Aber Leute, bitte vorsicht! Ich weiß weder den Grund für dieses Problem noch weiß ich, welche Auswirkungen dieses Problem noch haben wird. Mein System, und die Datei habe ich explizit nochmals auf Viren geprüft. Danke vielmals für Eure Hilfe.... Normalerweise stelle ich auf Option Explicit "on" - habe ich jetzt hier glaube ich, vergessen... das Problem ist jedoch das selbe.
    Dateien

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MaThoPa1973“ () aus folgendem Grund: Testdatei angehangen

    läuft problemlos.

    Man kann dein Code auch noch vereinfachen, denn das mit dem Using-Block ist nicht nötig, wenn du den OFD wie bei dir aus der Toolbox aufs Form gepackt hast (der sauberere Weg):

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub CTL_CBDB_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CTL_CBDB.Click
    3. With OFD_CBDB
    4. If .ShowDialog() = DialogResult.OK Then
    5. Me.TXT_CBDB.Text = .FileName
    6. End If
    7. End With
    8. End Sub
    9. End Class


    Mit gezippten Sources kann man übrigens nicht versehentlich einen Virus übertragen, denn Sources sind nicht ausführbare Text-Dateien. Ein Virus müsste dort schon für jeden nachlesbar gecodet sein.
    Hallo Leute,
    danke vielmals für das schnelle Feedback... ich befürchte auch immer mehr, dass etwas mit meinem System nicht stimmt. Im Zweifelsfall - wirklich nur als letzter Ausweg - bleibt dann wohl die De-Installation von Visual Studio und neu installieren. Die Reparatur im Wartungsmodus habe ich ja bereits durchgeführt.

    @Erfinderdes Rades: Für gewöhnlich habe ich diese Funktion auch ohen die Using-Komponente (eben wei lich den OpenFile-Dialog direkt ins Form ziehe). Nur auf der Suche nach einer Lösung hatte ich dann auch unter anderem Using genutzt und so stand es gerade noch im Quellcode drin.

    Habt Ihr denn noch eine Idee in welchem Bereich des Systems das Problem stecken könnte? Es laufen auf meinem Rechner nur Originalprogramme mit Lizenz, entsprechend bekomme ich auch die Updates (Windows 7 Home Premium 32bit, Visual Studio 2010 professional Academic). Neue Programme habe ich in der vergangenen Zeit keine installiert.

    Danke und Gruß
    Markus
    So - ich wäre dann mit meinem Latein am Ende. Letzte Lösung meinerseits war die De-Installation von Visual Studio, Systembereinigung und Neuinstallation... aber auch das hat leider nicht den gewünschten Erfolg gehabt. Besteht die Möglichkeit, dass die dll-Datei einen Hau weg hat und diese ausgetauscht werden müsste? Und wenn ja, welche dll müsste ich austauschen und wo bekomme ich diese her?

    Gruß
    Markus
    Hallo Marcus,

    hast du vielleicht noch einen anderen Rechner zur Verfügung, auf dem du ein Visual Studio draufinstallieren kannst ?
    Dann würdest du sehen ob dein Visual Studio einen Hau hat.

    Es wird dir hier keiner wirklich helfen können, so nehme ich an.

    Gruss

    mikeb69
    Hallo Mike, hallo Leute,
    einen anderen Rechner habe ich leider nicht zur Verfügung. Aber ich bin heute dennoch in der glücklichen Lage Euch verkünden zu können, dass langsam ein wenig Licht ins Dunkel kommt.

    Ich hatte ja bereits beschrieben, dass ich erst kürzlich Probleme hatte, Sicherheitsupdate für .Net Framework 3.5 und 4.0 zu installieren. Zeitgleich kamen dann ja auch die Probleme mit dem OpenFileDialog auf. Durch eine Reparatur des .Net Framework 4.0 im Wartungsmodus war ich dann doch in der Lage die Updates zu installieren. Das Problem mit dem OpenFileDialog wurde dadurch jedoch nicht behoben.
    Nun habe ich ein Testprojekt erstellt und dann unter den erweiterten Kompilierungseinstellungen eine andere -Net Framework ausgewählt und siehe da - der OpenFileDialog öffnet sich wieder und es funktioniert alles einwandfrei. Und das bis einschließlich .Net Framework 3.5 und 3.5 Client Profile. Bei Auswahl von 4.0 oder 4.0 Client Profile zeigt sich wieder das Problem mit dem OpenFileDialog.

    Ursache allen Übels ist also das .Net Framework 4.0, beziehungsweise die zuletzt ausgelieferten Sicherheitsupdates und die Probleme während der Installation dieser Updates.

    Ich werde mich jetzt also um eine jungfräuliche -NetFramework 4.0 bemühen und hoffe, dass dann mein OpenFileDialog auch unter 4.0 wieder läuft. Bleibt natürlich nur die Frage, warum das Problem nur bei mir bestand und aufgetreten ist.

    Nichts desto trotz danke ich Euch allen für Eure Denkanstöße und Unterstützung. VB-Paradise ist eines der wenigen Foren wo man wenigstens noch Antworten erhält. Also - ein netten Dank an Euch alle.

    Falls jemand noch einen Kommentar diesbezüglich anfügen möchte um auch anderen Usern zukünftig mit diesem Thread zu helfen lasse ich diesen noch ein paar Tage offen. Vielleicht hat ja jemand noch einen Tipp oder Link, eine Anleitung wie man am besten vorgeht das alte .Net Framework zu deinstallieren, eine neue zu erhalten und vernünftig installiert. Meine Sorge ist nämlich, dass bei der Deinstallation noch ein wenig Registryabfall hängen bleiben könnte der im Anschluss bei einer Neuinstallation doch wieder zum alten Problem führt.

    Wünsche Euch noch einen schönen Abend und ein schönes Wochenende.

    Gruß
    Markus
    Jo - das ist doch immerhin ein bisserl erfreulich.
    Kleiner Hinweis noch: Du kannst den Thread bedenkenlos als "erledigt" markieren. Das bewirkt nur die Anzeige als "erledigt", ohne dass der Thread geschlossen wäre.
    Also Ergänzungen werden weiterhin immer möglich sein.
    Einen Thread schließen kann nur die Moderation, und das wird nur gemacht, wenn inhaltlich fortgesetzt und erheblich gegen Board-Regeln verstoßen wird.