AutoCAD: Openfiledialog Problem

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Ninjamon.

    AutoCAD: Openfiledialog Problem

    Hallo vb-paradise community,

    ich stehe zur Zeit vor einem kleinen Problem und kann mir keinen Reim darauf bilden, warum dies passiert. Folgende Situation:

    Ich habe einen Openfiledialog, welcher als .InitialDirectory eine Variable hat (Diese wird mit dem Pfad einer AutoCAD Zeichnung belegt). Alles funktioniert beim ersten aufmachen wunderbar und es wird der richtige Ordner gezeigt, alles lässt sich laden und es gibt null Probleme. Wenn ich nun aber die Form schließe, eine andere Zeichnung lade - die Variable wird beim erneuten Öffnen der Form natürlich geändert - und wieder den Button für den Dialog klicke, so werde ich trotz veränderter InitialDirectory (welche auch im Debugger richtig angezeigt wird) in den Ordner verwiesen, in welchem die erste Zeichnung lag.


    Quellcode

    1. Dim Ed = Application.DocumentManager.MdiActiveDocument.Editor
    2. Dim Opts = New PromptOpenFileOptions("Datei laden")
    3. Opts.Filter = "Text-Dateien (*.txt)|*.txt"
    4. Opts.InitialDirectory = ActRep
    5. Dim Pr = Ed.GetFileNameForOpen(Opts)
    6. If Pr.Status = PromptStatus.OK Then
    7. Ed.WriteMessage("Gewählte Datei: {0}", Pr.StringResult)
    8. If Pr.StringResult.Contains("_Mastdaten_") Then
    9. Else
    10. MsgBox("Die von ihnen gewählte Datei kann nicht geladen werden.")
    11. Exit Sub
    12. End If
    13. sPfad = Pr.StringResult
    14. Else
    15. sPfad = ""
    16. End If



    Hat jemand einen Lösungsvorschlag für mich, oder kann mir zumindest sagen woran sich der Fehler aufhängt?


    Vielen Dank für eure Mühen im Voraus und liebe Grüße

    Jan aka. Ninjamon



    Edit aka. Lösung:

    Meinem Chef nach scheint dieser Fehler, welcher bei mir auftritt, ein AutoCAD Fehler zu sein. Der Code ist zwar eigentlich richtig, allerdings nutzt AutoCAD die InitialDirectory nicht. Der Support ist mitlerweile kontaktiert und sollte es was neues geben werde ich es für Leute die zukünftig dieses Problem haben natürlich hier vermerken.

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

    Dann poste mal den Code des unmittelbaren OpenFileDialog-Aufrufes.
    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!

    Ninjamon schrieb:

    steht der schon im obigen Code
    Ich pflichte dem @ErfinderDesRades: bei, solch kenn ich nicht.
    Ich erwarte etwa folgenden Code:

    VB.NET-Quellcode

    1. Me.OpenFileDialog1.ShowDialog()
    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!
    In der Definition steht AutoCAD.

    Hier der ganze Text:
    Public Function GetFileNameForOpen(ByVal options As Autodesk.AutoCAD.EditorInput.PromptOpenFileOptions) As Autodesk.AutoCAD.EditorInput.PromptFileNameResult
    Member von Autodesk.AutoCAD.EditorInput.Editor

    Ninjamon schrieb:

    Hier der ganze Text:
    Aha.
    Wenn ich das richtig sehe, solltest Du Dich an das AutoCAD-Forum wenden, denn das sieht doch sehr nach einem dortigen Internal aus.
    Benenne bitte mal Deinen Thread um:
    AutoCAD: Openfiledialog Problem
    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!
    Haha, woher hastn den Code kopiert? :D
    Wenn du Autocad Dinge beibringen oder automatisieren willst, kannst du das über die VBS-Console.
    Wenndas benötigte Plugin nicht installiert ist das bekommst du don Autodesk direkt und gratis.

    Sag mal was du vor hast vielleicht gibts besseres
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    Naja, der Code ist aus einem Projekt an welchem ich seit längerem arbeite (damals wars noch komplett in VBA geschrieben). Ich stehe nun halt vor der Aufgabe die alten Fehlerquellen im Programm auszuradieren.
    Ich habe vor, dass wenn das Programm in der selben Sitzung mit einer anderen Zeichnung aufgerufen wird, der Anfangsordner des Filedialogs auch im Ordner der zweiten Zeichnung sitzt und nicht wie bisher im Ordner der ersten (was ich mir wie schon gesagt nicht erklären kann). Im Ordner zur Zeichnung liegen nämlich Text-Dateien, von denen ich einige einlesen kann (welche das sein soll wird halt durch den Dialog gewählt). Das Stringresult wird dann auf die Variable spfad geladen, welche wichtig ist für die Leseroutine.

    Ninjamon schrieb:

    allerdings öffnet der Dialog trotzdem an einer anderen Stelle.
    Dann solltest Du mal, wie oben bereits geschrieben, den Code posten.
    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!
    Warum muss es dieser komischer MDI-Editor sein? Kannst du kein FileInfo und so nutzen? Das funktioniert wenigstens.

    @RodFromGermany
    Hat er doch ganz oben.
    EDIT: Stimmt, hast Recht, ich sehe keinen Befehl zum Aufrufen des Fensters, nur zu Einstellungen. Vielleicht öffnet er deswegen automatisch den letzten Ordner? Weil er nicht explizit aufgerufen wird?