Fehler bei PictureBox1 wenn Pfad kopiert ist!

  • VB.NET
  • .NET 2.0

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Cheffboss.

    Fehler bei PictureBox1 wenn Pfad kopiert ist!

    Moin! :)
    Wenn ich einer PictureBox1 ein Bild zuweise.
    Und den Pfad vom Windows-Explorer kopiert habe.
    Erscheint eine Fehlermeldung!
    Wenn ich aber den Pfad selber eintippe, erscheint keine Fehlermeldung.
    Ich habe bereits im Notepad++ geschaut ob sich irgendwelche verbotenen Zeichen versteckt haben.
    Habe aber keine gefunden.
    BIG THX

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. ' Fehler - Copy vom Explorer
    3. 'System.NotSupportedException: "Das angegebene Pfadformat wird nicht unterstützt."
    4. Me.PictureBox1.Image = Image.FromFile("‪D:\Temp\Hund.jpg")
    5. ' Richtig
    6. Me.PictureBox1.Image = Image.FromFile("D:\Temp\Hund.jpg")
    7. End Sub

    Visual Basic.NET 8o
    MS-SQL
    8o

    Cheffboss schrieb:

    Erscheint eine Fehlermeldung!
    Welche?
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    @RodFromGermany

    Cheffboss schrieb:

    VB.NET-Quellcode

    1. 'System.NotSupportedException: "Das angegebene Pfadformat wird nicht unterstützt."


    Sehr mysteriös. Könnte das was mit Encoding zu tun haben ?
    Kopier doch erstmal ins notepad und von da aus dann weiter, daß könnte einen Hinwweis darauf geben.
    @FormFollowsFunction Das höhere Wesen hat mich mit Blindheit geschlagen. :rolleyes:
    @Cheffboss Speicher mal den kopierten Pfad in eine Datei und häng die an.
    Mit dem hier hab ich keine Probleme:
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Spekulatiusmodus on: Riecht mir nach unsichtbaren Zeichen. Prüf mal die Länge und lass Dir die ASCII-Tabellenwerte aller Zeichen geben.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    @petaod
    Wenn ich den Pfad aus dem Eigenschaft-Fenster kopiert habe, und diese in mein Visual Studio einfügen. :!:

    @FormFollowsFunction
    Ich habe den Code in Notepad und Notepad++ kopiert, ohne ein falsches Zeichen zu sehen.

    @RodFromGermany
    Wenn ich auf Verwalten – Start – Pfad kopieren klicke.
    Funktioniert es. :)

    @VaporiZed
    Werde ich dann sobald ich Zeit finde, mal nachschauen. ^^

    @an alle
    Vielen Dank, für eure Antwort. :thumbup:

    Im Anhang:
    Der Form1 Code!
    Form1.zip
    Visual Basic.NET 8o
    MS-SQL
    8o
    Unsichtbares Sonderzeichen zwischen " und D:\. Sach ich doch. Daran zu erkennen, dass man von der Position vor dem " zur Position hinter dem D 3x nach rechts tippen muss anstatt 2x. Wegmachen und es funktioniert.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    @Cheffboss Wie holst Du denn den Pfad aus dem Explorer?
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Keine Magie:


    Wenn du den Pfad kopierst, dann kopierst du ein ANSI Symbol mit. Anscheinend ist das lange Leerzeichen zwischen "Objektname:" und "D:\Steam\steam.dll" das Selbe Objekt. Ich weiß sowieso nicht, warum Windows so komisch programmiert wurde.

    Notepad++ --> Kodierung --> ANSI um versteckte Zeichen dieser Art wieder zu finden. Ich knüpfe hier an @VaporiZed an, nur etwas spezifischer. Also war seine Antwort bereits richtig.
    Wenn ich eine Frage stelle, habe ich sie bereits gegooglet. Ja, es kommt vor, dass ich die Antwort übersehe. Ja, es kommt vor, dass ich sie nicht verstehe. Deshalb bin ich hier. Wenn dies eure Frage war, dann antwortet bitte nicht. Es stiehlt sämtliche Motivation.
    @VaporiZed
    Habe es gerade selber, mit dem Notepad++ untersucht.
    Du hattest Recht mit dem Unsichtbaren Zeichen.

    @RodFromGermany
    Ich habe den Dateinamen aus dem Eigenschaftsfenster von Windows kopiert.
    In Zukunft kopiere ich den Pfad über den Weg, diesen du oben beschrieben hast.

    @Sekki
    Danke, für das Screenshot.
    Ich habe es gerade auch selber untersucht mit NotePad++.
    Und habe den gleichen Fehler gefunden.
    Nun weiß, ich Bescheid, warum VS Studio immer eine Fehlermeldung angezeigt hat.
    Ich dachte schon das VS Studio spinnt!

    @an alle
    Meint Ihr man sollte Microsoft Bescheid geben?
    Damit das Problem in Zukunft behoben wird?
    Weil das mir sehr auf die nerven ging.
    Visual Basic.NET 8o
    MS-SQL
    8o

    Cheffboss schrieb:


    @an alle
    Meint Ihr man sollte Microsoft Bescheid geben?
    Damit das Problem in Zukunft behoben wird?
    Weil das mir sehr auf die nerven ging.


    Wenn du es perfekt markierst (also wirklich vom Pfadanfang bis Pfad Ende markierst), dann entsteht kein solcher ANSI Code. :)
    Wenn ich eine Frage stelle, habe ich sie bereits gegooglet. Ja, es kommt vor, dass ich die Antwort übersehe. Ja, es kommt vor, dass ich sie nicht verstehe. Deshalb bin ich hier. Wenn dies eure Frage war, dann antwortet bitte nicht. Es stiehlt sämtliche Motivation.
    @Cheffboss: Spar Dir die Mühe. Solche Kleinigkeiten werden dezent ignoriert. Ich hatte auch einiges gemeldet, z.B. auch, dass im MonthCalendar und somit auch im DateTimePicker die Kalenderanzeige insofern einen Fehler enthält, als das die Zeile "Heute" zwar als LinkLabel eingerichtet zu sein scheint, aber das letzte Zeichen nicht dazugehört und somit weder markiert wird noch anklickbar ist. Von Mikrosaft abgetan als irrelevant.
    Bilder
    • MinorCalendarBug.png

      4,23 kB, 207×278, 15 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    @VaporiZed Wir bräuchten mal einen Thread, wo all die gefundenen Fehler in Microsofts Software diskutiert werden und man nach Lösungswege suchen könnte. Sowas wäre mal hoch interessant, vielleicht würden manche Programmierer hier im Forum sich da beteiligen. :)

    Um den Thread nicht weiter zu pushen: Im out.
    Wenn ich eine Frage stelle, habe ich sie bereits gegooglet. Ja, es kommt vor, dass ich die Antwort übersehe. Ja, es kommt vor, dass ich sie nicht verstehe. Deshalb bin ich hier. Wenn dies eure Frage war, dann antwortet bitte nicht. Es stiehlt sämtliche Motivation.

    Cheffboss schrieb:

    Meint Ihr man sollte Microsoft Bescheid geben?

    Ich verstehe die Diskussion nicht.
    Wie schon geschrieben wurde, gibt es genügend Möglichkeiten, einen Pfad sauber zu kopieren.

    Die Tatsache, dass wenn ein Pfad aus einem Fließtext kopiert wird, auch die markierten (sichtbaren und unsichtbaren) Leerzeichen mit kopiert werden, ist gewollt.
    Das ist kein Fehler und wird zurecht von Microsoft nicht weiter verfolgt werden.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Das ist aber kein Fließtext, sondern laut Spionage-App ein eigenständiges CE (Klassentyp "Edit", Win32) mit dem Pfad als Wert, inkl. unsichtbarer Zeichen, die das hiesige Problem ausgelöst haben.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    OK, hab's gerade nochmals angeschaut.
    Ursprünglich dachte ich, der Header gehört mit zum Text.
    Aber es ist tatsächlich nur der Objektname in dem Feld.

    Vielleicht ist das der Grund.
    Der Objektname und der Pfadname sind wohl nicht dasselbe.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --