Image einer Picturebox ändern

  • VB.NET

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

    Image einer Picturebox ändern

    Hallo zusammen,
    da ich mich (leider :S ) immer noch zu den Frischlingen zählen muss habe ich mir im Internet eine Schleife zusammengeklickt in der ich, während der Laufzeit, eine Reihe von Picture-Boxen anlege. Dies sieht so aus:

    VB.NET-Quellcode

    1. For i = 0 To 19 ' Später 39 einsetzen
    2. For ii = 0 To 29 'Später 59 einsetzen
    3. With myPicture
    4. .Name = _Right("0" & i.ToString, 2) & _Right("0" & ii.ToString, 2)
    5. .BackColor = Color.White
    6. .BackgroundImageLayout = ImageLayout.Center
    7. .BorderStyle = BorderStyle.None
    8. .Image = My.Resources.Leer
    9. .Height = BildGroesse
    10. .Width = BildGroesse
    11. .Top = i * BildGroesse + 29
    12. .Left = ii * BildGroesse
    13. .SizeMode = PictureBoxSizeMode.CenterImage
    14. End With
    15. AddHandler myPicture.MouseDown, AddressOf myPicture_MouseDown
    16. Me.Controls.Add(myPicture)
    17. myPicture = New PictureBox
    18. Next
    19. Next


    Wenn nun irgendwann eine solche Picturebox angeklickt wird muss ich das hinterlegte Image ändern. Die Sub dafür sieht bisher so aus:

    VB.NET-Quellcode

    1. Private Sub myPicture_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
    2. GeklicktesBild = DirectCast(sender, PictureBox)
    3. NameDerPicBox = GeklicktesBild.Name
    4. End Sub


    Also weiss ich schon mal den Namen der Picturebox. Kann ich, und wenn ja, wie, anhand dieser Info das Image ändern?

    Herzlichen Dank für's helfen
    Du solltest außerdem
    myPicture = New PictureBox Doch vor dem With anwenden...
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Ach du Sch... Schande. Gut, dass ich mich eingangs zu den Frischlingen zählte. Da sah ich den Wald vor lauter bäumen nicht oder, ich glaub ich hab's versucht, und bekam einen Fehler weil ich einen Tipfehler im Namen d'rin hatte.

    Auf jeden Fall herzlichen Dank für die Hilfe.
    :D
    Ein Punkt für mich hehe :3
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Darf ich diesen Beitrag zu einer weiteren Frage missbrauchen?

    Wenn ich den oben, während der Laufzeit erstellten Picrtureboxes, an anderer Stelle ein anderes Contextmenu zuweisen will, Wie geht das?

    Ich sag schon mal herzlich danke in der Hoffnung auf weitere, gute Hilfe
    Sieh Dir mal in der FormX.Designer.vb in der Prozedur InitializeComponents() an, wie ein im Designer generiertes ContextMenu behandelt und zugewiesen wird. Mach es analog in Deinem Code.
    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!
    Glaubt mir... Ich hab's mir angesehen aber ich versteh's trotzdem nicht. Habt Erbarmen mit einem wie mir.

    In Zwei Schleifen:

    For Schleife1 = 0 to 10
    For Schleife2 = 0 to 10
    ...
    Me.Controls.Add(myPicture)

    Next
    Next

    habe ich die Bilder eingerichtet. Wie finde ich jetzt diese Bilder wieder?

    web933 schrieb:

    Wenn ich mich nicht irre
    hast Du nicht mal nachgesehen, wie ieinem Objekt ein ContextMenu zugewiesen wird.
    Also:
    Schreib mal auf, wie einer designer-generierten PictureBox ein designer-generiertes ContextMenu zugewiesen wird.
    Dann sehen wir weiter.
    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!
    Mal so eine andere Frage:

    Das hört sich nicht gesund an auf einer Form 40 * 60 = 2400 Picboxen zu haben ?
    Wenn es das ist, wonach es sich für mich anhört, dann würde ich eine Große PB nehmen und da mit GDI+ das Bild 'reinmalen', und im MouseClick-Event die Location in die einstige PB umrechnen.

    Oder bin ich da falsch ?
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

    web933 schrieb:

    Me.picLeer.ContextMenuStrip = Me.conBearbeiten
    Na fein. Und was hindert Dich daran, diese Erkenntnis auf beliebige PictureBoxen und ContextMenuStrips anzuwenden?

    VB.NET-Quellcode

    1. PB1.ContextMenuStrip = Me.ContextMenuStrip1
    2. PB2.ContextMenuStrip = Me.ContextMenuStrip1

    VB.NET-Quellcode

    1. PB1.ContextMenuStrip = CMB1
    2. PB2.ContextMenuStrip = CMB2
    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!

    web933 schrieb:

    falsch?
    Nix. Du sollst es auf Dein Problem anwenden.
    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!