PictureBox-Vergleich Problem

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

    PictureBox-Vergleich Problem

    Hallo,
    da der = -Operator ja für System.Drawing.Image und System.Drawing.Bitmap nicht definiert ist hab ich es mit dem is -Operator versucht.

    Es funktioniert nicht:
    If PictureBox1.Image = My.Resources.Bild1 Then
    ....
    End if


    Deswegen mache ich folgendes mit "is":
    Private Image1 As Image = My.Resources.Bild1
    If (PictureBox1.Image Is Image1) Then
    ...
    End If

    Das scheint aber auch nicht zu funktionieren.
    Hat hier jmd ne Lösung dafür ? Wäre sehr nett. Danke ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SenA“ ()

    Der Operator IS vergleicht nicht den Inhalt der beiden Bilder wie Du vielleicht annimmst, sondern nur ob 2 Objekte auf die gleiche Instanz verweisen (= beide auf den gleichen Platz im Speicher verweisen).

    Du könntest genauso schreiben

    VB.NET-Quellcode

    1. If Object.Equals(PictureBox1.Image, Image1)

    VB.NET-Quellcode

    1. If Object.Equals(PictureBox1.Image, Image1)

    workt auch nicht. Es wird bei meinem Programm per Zufall PictureBoxen Bilder zugewiesen. Wenn jetzt PicBox1 und PicBox2 das selbe Bild haben, dann soll was passieren.
    Kann man das denn nicht anderst lösen als jeden Pixel zu vergleichen ?

    Ich hätte noch die Idee, dass ich bei der Zuweisung je nach Bild eine Zahl in ein Label stecke und dann kann ich ja die Strings vergleichen. Ich versuchs mal...
    Entweder über die TAG Eigenschaft, oder du vergleichst die Objekte:

    VB.NET-Quellcode

    1. Private CurrentImage As Image
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. CurrentImage = My.Resources.DeinBild
    4. PictureBox1.Image = CurrentImage
    5. End Sub
    6. Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
    7. If PictureBox1.Image Is CurrentImage Then MsgBox("Gleiches Objekt")
    8. End Sub
    Das ist meine Signatur und sie wird wunderbar sein!