Picture Box generieren mit vordefiniertem Bild

  • VB.NET
  • .NET (FX) 4.0

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von PPR-Dev.

    Picture Box generieren mit vordefiniertem Bild

    Hallo Miteinander

    Ich hab Folgendes Problem:
    Wie kann ich eine Picture Box Generieren, die ein Bild enthält und sich Symetrisch anordnet.
    z.b wenn in bild pb1 auf die News Box geklickt wird, soll es in pb2 eine Neue Kachel erzeugen mit dem Selben Bild.

    Danke

    Gruss PPR
    Bilder
    • pb1.JPG

      12,84 kB, 467×277, 125 mal angesehen
    • pb2.JPG

      18,74 kB, 271×239, 133 mal angesehen

    Basis2 schrieb:

    schau dir mal die Me.Controls Funktion an.

    z0r.de/2757

    @PPR-Dev Was genau ist der Plan?
    Was Du brauchst, für die Anordnung ist ein FlowLayoutPanel, der Rest sind EventHandler und Instanzen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wäre es nicht schöner das mit GDI zu bewerstelligen? Die Rectangles, in die du deine Bilder reinzeichnest in einer Liste speichern und beim Klick auf die Form prüfen ob sich die Mauskoordinaten in einem Rectangle befinden und dann Code ausführen.

    8-) faxe1008 8-)
    @Basis2 Es ist keine Funktion, sondern eine Collection, also bitte, Dir fehlen erhebliche Grundlagen, denn man sollte den Unterschied zwischen Funktion, Property, Auflistung etc. kennen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    So was ?

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim pb As New PictureBox
    3. With pb
    4. .Location = New Point(20, 100)
    5. .Size = New Size(100, 100)
    6. .Name = "PictureBox"
    7. .Image = My.Resources.sexy
    8. '.BackgroundImageLayout = ImageLayout.Stretch
    9. End With
    10. Me.Controls.Add(pb)
    11. End Sub​
    So wäre das in GDI:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim buttonrectangles As New List(Of ImageRectangle)
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. buttonrectangles.Add(New ImageRectangle With {.Rectangle = New Rectangle(30, 30, 50, 50), .Color = Color.Black, .Name = "Hello"})
    5. flag = True
    6. Invalidate()
    7. End Sub
    8. Dim flag = False
    9. Private Sub Form1_MouseClick(sender As Object, e As MouseEventArgs) Handles Me.MouseClick
    10. For Each rect As ImageRectangle In buttonrectangles
    11. If rect.Rectangle.Contains(e.Location) Then
    12. Select Case rect.Name
    13. Case "Hello"
    14. MessageBox.Show("Hi")
    15. End Select
    16. End If
    17. Next
    18. End Sub
    19. Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
    20. If flag = True Then
    21. For Each rect As ImageRectangle In buttonrectangles
    22. e.Graphics.FillRectangle(New SolidBrush(rect.Color), rect.Rectangle)
    23. Next
    24. flag = False
    25. End If
    26. End Sub
    27. End Class
    28. Public Class ImageRectangle
    29. Public Property Rectangle As Rectangle
    30. Public Property Color As Color
    31. Public Property Name As String
    32. End Class


    Anstatt Color kannst du auch einfach ein Bild als Image-Property zuweisen und dann statt .FillColor .DrawImage nehmen.

    8-) faxe1008 8-)