none
Comparar dos PictureBox.tag RRS feed

  • Pregunta

  • Buenos dias

    Puedo compara el valor de dos Tags de PicturesBoxs? Ejemplo

    Si PictureBox1.tag tiene un valor de casa y el PictureBox.Tag tiene un valor de carro me valida la diferencia?

    Gracias

    MauricioIvan


    M3

    martes, 26 de abril de 2016 13:49

Respuestas

  • Sí, claro que se puede comparar. Aunque tienes que tener en cuenta que el tipo de datos de la propiedad Tag es Object por lo que trata el valor como un valor por referencia. Si almacenas strings deberías "castear" los valores antes de compararlos:

    If CType(PictureBox1.Tag, String) = CType(PictureBox2.Tag, String) Then
     ' Son iguales
     .....
    End If


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta MauricioIvan martes, 26 de abril de 2016 14:05
    martes, 26 de abril de 2016 13:57

Todas las respuestas

  • Sí, claro que se puede comparar. Aunque tienes que tener en cuenta que el tipo de datos de la propiedad Tag es Object por lo que trata el valor como un valor por referencia. Si almacenas strings deberías "castear" los valores antes de compararlos:

    If CType(PictureBox1.Tag, String) = CType(PictureBox2.Tag, String) Then
     ' Son iguales
     .....
    End If


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta MauricioIvan martes, 26 de abril de 2016 14:05
    martes, 26 de abril de 2016 13:57
  • Gracias Asier

    Como ves, mi nivel en vbNet es muy elemental.

    MIra, tengo una pila de PictureBoxs revueltos a mano izquierda y tengo que pasarlos a la derecha a su lugar correcto pero aveces parece como si no comparara el valor de los tags siendo diferentes no deberia apilarlo.

    (me acuerdo de plaza sesamo, Una de estas cosas es diferente, una de estas cosas no es igualll jeje), bueno, voy a insertar esa condicion que me dices en los if.

    Gracias por tu tiempo

    MauricioIvan


    M3

    martes, 26 de abril de 2016 14:13
  • Mira este programa para comparar imagenes, uno lo puede poner como una funcion e invocarla para comparar las imagenes ?, al principio yo pensé traslapar los picturesbox peroen ultimas, para no complicarme demasiado opté opté por la propiedad Tag.

    Es buenisimo, aqui va

    Private Sub btnGo_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnGo.Click
        Me.Cursor = Cursors.WaitCursor
        Application.DoEvents()
    
        ' Load the images.
        Dim bm1 As Bitmap = Image.FromFile(txtFile1.Text)
        Dim bm2 As Bitmap = Image.FromFile(txtFile2.Text)
    
        ' Make a difference image.
        Dim wid As Integer = Math.Min(bm1.Width, bm2.Width)
        Dim hgt As Integer = Math.Min(bm1.Height, bm2.Height)
        Dim bm3 As New Bitmap(wid, hgt)
    
        ' Create the difference image.
        Dim are_identical As Boolean = True
        Dim r1, g1, b1, r2, g2, b2, r3, g3, b3 As Integer
        Dim eq_color As Color = Color.White
        Dim ne_color As Color = Color.Red
        For x As Integer = 0 To wid - 1
            For y As Integer = 0 To hgt - 1
                If bm1.GetPixel(x, y).Equals(bm2.GetPixel(x, _
                    y)) Then
                    bm3.SetPixel(x, y, eq_color)
                Else
                    bm3.SetPixel(x, y, ne_color)
                    are_identical = False
                End If
            Next y
        Next x
    
        ' Display the result.
        picResult.Image = bm3
    
        Me.Cursor = Cursors.Default
        If (bm1.Width <> bm2.Width) OrElse (bm1.Height <> _
            bm2.Height) Then are_identical = False
        If are_identical Then
            MessageBox.Show("The images are identical")
        Else
            MessageBox.Show("The images are different")
        End If
    
        bm1.Dispose()
        bm2.Dispose()
    End Sub
    

    MauricioIvan


    M3

    martes, 26 de abril de 2016 15:01