CType auf ImageBox in Groupbox = systemReferenceNull

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    CType auf ImageBox in Groupbox = systemReferenceNull

    Hallo,

    ich hatte so ein ähnliches Thema schon einmal, finde aber in meinem Profil keine Möglichkeit, meine alten eigenen Einträge zu suchen?!
    Ich möchte mir hiermit das Bild einer ImageBox ändern je nach einem Wert:

    Quellcode

    1. If speed > 0 Then
    2. CType(Controls("grp_druck").Controls("pic_led_" & ma_nummer), PictureBox).Image = My.Resources.Resources.led_green


    Leider endet es in "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt". Nur nutze ich in einem anderen Projekt den gleichen Code und dort geht es?! Die Namen der GroupBox und der ImageBox stimmen auch, habe ich mehrmals geprüft.

    Danke für jeden Denkanstoß! :thumbup:
    ==> seid .net zueinander :D <3 <==

    Axxxxxl schrieb:

    finde aber in meinem Profil keine Möglichkeit, meine alten eigenen Einträge zu suchen?!

    geh in die Erweiterte Forensuche, Suche nach Autor Axxxxxl, Häkchen setzen bei Nur gestartete Themen des Nutzers finden

    Wofür genau kommt der Fehler?
    Drösel die Zeile notfalls auf, um dem Problem auf die Schliche zu kommen:

    VB.NET-Quellcode

    1. Dim GroupBox = Controls("grp_druck")
    2. Dim UntypedPicBox = GroupBox.Controls("pic_led_" & ma_nummer)
    3. Dim TypedPicBox = CType(UntypedPicBox, PictureBox)
    4. Dim Resource = My.Resources.Resources.led_green
    5. TypedPicBox.Image = Resource

    btw: Das Auswählen von Controls über den Namen ist schon ziemlich strange :huh:
    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.

    Axxxxxl schrieb:

    VB.NET-Quellcode

    1. .Image = My.Resources.Resources.led_green
    Was ganz genau willst Du hier vergleichen?
    Bilder?
    Pixelfolgen?
    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!
    Nein, es wird vorher eine Variable festgelegt "Speed" (Integer) und mit einem Wert einer Maschine gefüllt.
    Wenn speed > 0 dann Bild der Picturebox auf "led_green"
    Wenn speed = 0 dann Bild der Picturebox auf "led_red"

    Die beiden Bilder sind in den Ressourcen des Projektes und auch ansprechbar.

    Quellcode

    1. 'wenn Maschine läuft
    2. If speed > 0 Then
    3. CType(Controls("pic_led_" & ma_nummer), PictureBox).Image = My.Resources.Resources.led_green
    4. 'wenn Maschine steht
    5. ElseIf speed <= 0 Then
    6. CType(Controls("pic_led_" & ma_nummer), PictureBox).Image = My.Resources.Resources.led_red
    7. End If


    Ich habe in den Code mal probiert ob es geht wenn ich die Picturebox aus der Groupbox rausschiebe - gleiches Ergebnis.


    ==> seid .net zueinander :D <3 <==
    @RodFromGermany: Wieso vergleichen? ist doch ne Zuweisung.
    @Axxxxxl: Welche Komponente ist nun Nothing? Siehe Post#2.
    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.

    VaporiZed schrieb:

    Zuweisung
    Sorry, hab ich fehlinterpretiert.
    @Axxxxxl Teste gelegentlich Deine GUIs:
    Öffne den Designer und selektiere der Reihe nach alle Controls.
    Überzeuge Dich davon, dass sie da sitzen, wo sie hingehören
    und davon, dass sie alle auch im finalen Form sichtbar sind.
    Bei mir ist die unterste Zeile eines TableLayoutPanels unten "rausgerutscht", weil ich oben eine weitere Zeile eingefügt hatte und die Höhe fix war.
    Gefunden, korrigiert, in Ordnung.
    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!