Probleme mit Picturebox Control

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von WebAs.

    Probleme mit Picturebox Control

    Moin, Moin,

    ich will in einem Formular eine bestehende Picturebox durch eine per Code erzeugte Picturebox ersetzen. Leider funktioniert der folgende Code nicht:

    VB.NET-Quellcode

    1. Dim NewBox = new PictureBox
    2. NewBox.image = Drawing.Image.FromFile("c:\neuesBild.jpg")
    3. Me.Controls.("meinePicBox") = NewBox


    Warum funktioniert das nicht?

    Gruß
    Alex
    Der Ansatz ist komisch. Warum nicht einfach das PicBox-Bild ersetzen als gleich die ganze PicBox?
    Folge den IDE-Hinweisen: Die Syntax ist einmal falsch.

    Zwischen Controls und (meinePicBox") darf kein Punkt. Wenn der weg ist, kommt, dass der Zugriff nicht möglich ist, da Controls bzw. Item Readonly ist. Du darfst also die ControlCollection nicht so ändern. Du musst mit Remove und Add arbeiten.

    VB.NET-Quellcode

    1. Me.Controls.Remove(Me.Controls("meinePicBox"))
    2. Me.Controls.Add(NewBox)

    Vorher solltest Du aber noch gewollte Eigenschaften von der einen in die andere PicBox übertragen, damit der Austausch "echt" aussieht.
    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.
    @WebAs Anders herum wird ein Schuh draus.
    Zieh die PictureBox im Designer auf die Form, verankere sie mit Dock oder Anchor und weise in Deiner Prozedur dieser PictureBox das Bild zu:

    VB.NET-Quellcode

    1. PictureBox1.image = Drawing.Image.FromFile("c:\neuesBild.jpg")
    Feddich.
    Und:
    Pack nicht die Root Deiner Festplatte mit solch Müll zu, erstell Dir dazu das Verzeichnis C:\Temp
    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!
    @VaporiZed Ich bin eigentlich davon ausgegangen, das in der ControlCollection einfach nur Zeiger auf die einzelnen Controls hinterlegt sind, die ich einfach austauschen kann. Und natürlich hast du Recht, die Eigenschaft ist ReadOnly. Wer lesen kann ist klar im Vorteil :(
    Ich werde, wie von dir vorgeschlagen, mit Remove und Add arbeiten.

    @RodFromGermany Das mit "c:\neuesBild.jpg" war nur ein Beispiel damit der Code nicht zu lang wird, natürlich liegen die Bilder an einem passenden Ort. Da an der Picturebox auch noch andere Parameter wie Location und Size dran hängen und auch die Anzahl der Pictureboxen zur Entwurfszeit noch nicht feststeht, macht die Variante von VaporiZed mehr Sinn.

    Danke euch beiden.