none
zur Laufzeit eine Picturebox erstellen und mit Inhalt füllen RRS feed

  • Frage

  • ich deklariere in einer Klasse:

    Public Shared MyOriginal_originalPicture As Bitmap

    und lade die Variable

     myPublic.MyOriginal_originalPicture = New Bitmap(myPublic.strCurrentFIle)

    Eine neue Klasse erweitert picturebox

    Public Class BetterPictureBox
        Inherits PictureBox

    .....

    Nun erstelle ich eine neue Picturebox:

    Dim picObserve As BetterPictureBox

    Wie kann ich nun diese Picturebox mit dem myPublic.MyOriginal_originalPicture laden?

    vielen Dank für jede Hilfe

    Bernd


    Vielen Dank Bruno

    Montag, 30. Mai 2016 07:43

Antworten

Alle Antworten

  • Hi Bruno,
    die Bitmap kann man der Image-Eigenschaft zuweisen, z.B. so:

    Public Class Form14
    
      Public Shared MyOriginal_originalPicture As Bitmap
    
      Private Sub Form14_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        MyOriginal_originalPicture = New Bitmap("Images\bild.jpg")
        Dim picObserve As New BetterPictureBox With {.Dock = DockStyle.Fill, .Image = MyOriginal_originalPicture}
        Me.Controls.Add(picObserve)
      End Sub
    
    
      Public Class BetterPictureBox
        Inherits PictureBox
    
      End Class
    
    End Class


    --
    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, 30. Mai 2016 08:27
  • Hallo Bruno,

    wenn Du von einer PictureBox erbst, so hat Deine BetterPictureBox zunächst einmal die gleichen Eigenschaften wie die PictureBox. Dort weist man der Image Eigenschaft das Bild zu, das man anzeigen will.

    Ist myPublic.MyOriginal_originalPicture eine Ressource, die ins Projekt eingebunden ist, geht es über My.Resources, siehe z. B.: Load Image from My.Resources to a Picturebox (VB.NET).

    Gruß Elmar

    Montag, 30. Mai 2016 08:30
    Beantworter
  • Vielen Dank!

    ich habe es soweit verstanden.

    Damit ich die Scrollbalken in einem Panel nutzen kann, wenn das Bild größer oder kleiner wird, versuche ich gerade, die Pictruebox in den Panel pnlObserve einzubinden. Hier mache ich wohl irgendwas falsch

            With pnlObserve
                .Top = 1
                .Left = 1
                .Width = Me.Width - 300
                .Height = Me.Height
                .Dock = DockStyle.Top
    
    
                'Dim picObserve As New BetterPictureBox With {.Dock = DockStyle.Fill, .Image = myPublic.MyOriginal_originalPicture}
    
    
                Dim picObserve As New BetterPictureBox
                .Controls.Add(picObserve)
    
    
                With picObserve
                    .Location = New Point(0, 0)
                    .Image = myPublic.MyOriginal_originalPicture
    
    
                End With
    
    
                Me.Controls.Add(picObserve)
    
    
            End With

    sorry -


    Vielen Dank Bruno

    Montag, 30. Mai 2016 10:50
  • Hallo Bruno,

    wenn die PictureBox in pnlObserve platziert werden soll, müsstest Du sie in die Controls-Auflistung des Panels einfügen.

    Oben verwendest Du aber beim zweiten Male Me.Controls, was vermutlich .Controls.Add(picObserve) sein sollte.

    Gruß Elmar


    Montag, 30. Mai 2016 11:16
    Beantworter
  • Vielen Dank an Euch - hätte vor 2 Tagen diese Frage stellen sollen!!!!


    Vielen Dank Bruno

    Montag, 30. Mai 2016 11:43