none
CE 6.0 System.InvalidCastException in System.Drawing.dll RRS feed

  • Frage

  • Hallo,

    auf einem Industrie Touch Panel mit CE 6.0 Betriebssystem wird beim Zuweisen einer Bitmap zu einer PictureBox folgende Ausnahme ausgelöst.

    Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in System.Drawing.dll aufgetreten.

    Die Programmzeilen:

    System.Windows.Forms.PictureBox picturebox = new System.Drawing.Bitmap("Bitmap.bmp");
    this.Form1.Controls.Add(picturebox);

    Das Bild wird in der Form einwandfrei dargestellt.

    Hat jemand eine Idee wo ich suchen muss oder was ich tun kann um diese Ausnahme zu verhindern?

    Grüße

    de-kekse

    Montag, 16. November 2015 19:10

Antworten

Alle Antworten

  • Hi,
    einer Variablen vom Typ PictureBox kann kein Verweis auf ein Objekt vom Typ Bitmap zugewiesen werden. Richtig ist, der Image-Eigenschaft einer PictureBox das BitMap-Objekt zuzuweisen.

    Das könnte etwa so aussehen:

    System.Windows.Forms.PictureBox picturebox = new System.Windows.Forms.PictureBox();
    picturebox.Image = System.Drawing.Bitmap("Bitmap.bmp");
    this.Form1.Controls.Add(picturebox);


    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks
    Kommas richtig setzen!
    Schüler sagen, Lehrer haben es gut.
    Schüler, sagen Lehrer, haben es gut


    Montag, 16. November 2015 19:35
  • Hi und vielen Dank für die schnelle Antwort,

    war mein copy/paste Fehler.

    Der Code sieht genauso aus wie Du ihn beschrieben hast, löst die Ausnahme aus aber zeigt die Bitmap richtig an.

    try
    {
      System.Windows.Forms.PictureBox picturebox = new System.Windows.Forms.PictureBox();
     
      // die folgende Zeile loest den Fehler aus
      // der Debugger stoppt nur in dieser Zeile wenn ich folgendes aktiviere
      // Debugging->Common Language Runtime-> System -> System.InvalidCastException
      // springt im Einzelschritt aber ueber den Catch Block.
      picturebox.Image = new System.Drawing.Bitmap("Bitmap.bmp");
     
      this.Form1.Controls.Add(picturebox);
    }
    catch (System.InvalidCastException ice)
    {
      System.Console.WriteLine(ice.Message);
    }

    Verwendet wird VS 2008 Prof und .Net CF 2.0

    Probiert habe ich auch schon bmp, jpg, png mit dem gleichen Resultat. Bild wird Perfekt angezeigt aber die Ausnahme wird ausgelöst.

    Hat noch jemand eine Idee dazu?


    • Bearbeitet de Kekse Dienstag, 17. November 2015 18:30 catch hinzugefuegt
    Montag, 16. November 2015 20:23
  • Die Ausnahme wird in der Implementierung des Konstructors von 'System.Drawing.Bitmap' ausgelöst und auch gleich wieder gefangen. - Sprich das ist OK und kein Problem für die Anwendung.

    Weitere Infos zu dem Thema gibt's hier: https://social.msdn.microsoft.com/Forums/en-US/c35bbeaf-5515-40df-b78d-d6fbfd4c3505/bitmap-loading-generates-invalidcastexception


    MVP Windows Embedded

    • Als Antwort vorgeschlagen Michael Koster Mittwoch, 18. November 2015 08:41
    • Als Antwort markiert de Kekse Donnerstag, 19. November 2015 14:52
    Mittwoch, 18. November 2015 08:31