none
picturebox transparente encima de otro RRS feed

  • Pregunta

  • holas otra vez, mi pregunta es ¿se puede poner un picture box transparente encima de otro picturebox que tenga una imagen?

    lo que quiero es que del picturebox de encima solo se vean sus bordes por que es mas chico que el de abajo y me permita ver la imagen que tiene el picture box de abajo.

    miércoles, 21 de noviembre de 2012 21:42

Respuestas

  • Hola, tiene que asignar backColor a transparente y luego hacer

    Picturebox2.Parent = Picturebox1 
    Picturebox2.Visible = True

    ó

    PictureBox1.Controls.Add(PictureBox2)

    Supongo que las imágenes son transparentes (Archivos .gif ó .png).


    Saludos, Javier J

    • Marcado como respuesta alvcm domingo, 25 de noviembre de 2012 0:07
    jueves, 22 de noviembre de 2012 7:59

Todas las respuestas

  • Hola, tiene que asignar backColor a transparente y luego hacer

    Picturebox2.Parent = Picturebox1 
    Picturebox2.Visible = True

    ó

    PictureBox1.Controls.Add(PictureBox2)

    Supongo que las imágenes son transparentes (Archivos .gif ó .png).


    Saludos, Javier J

    • Marcado como respuesta alvcm domingo, 25 de noviembre de 2012 0:07
    jueves, 22 de noviembre de 2012 7:59
  • gracias el codigo funciona bien pero no entiendo por que el picturebox que esta encima se mueve cuando ejecuto el programa... como haria para que no se mueva???
    jueves, 22 de noviembre de 2012 20:27
  • La posición del control es relativa a la del parent.

    PictureBox2.Parent = PictureBox1
    PictureBox2.Location = PictureBox2.Location - PictureBox1.Location
    

    jueves, 22 de noviembre de 2012 23:14
  • tanks...
    viernes, 23 de noviembre de 2012 1:29
  • La posición del control es relativa a la del parent.

    PictureBox2.Parent = PictureBox1
    PictureBox2.Location = PictureBox2.Location - PictureBox1.Location

    ¿Como seria eso en c#?
    viernes, 1 de marzo de 2013 23:46
  • ¿querés decir que el operador no está sobrecargado? Vas a tener que crearte el nuevo Point entonces,

    pb2.Location = new Point(pb2.Location.X - pb1.Location.X, pb2.Location.Y - pb1.Location.Y);

    supongo.


    • Editado Walter Miguel sábado, 2 de marzo de 2013 0:13
    • Propuesto como respuesta JaviCN sábado, 2 de marzo de 2013 11:43
    sábado, 2 de marzo de 2013 0:13
  • ¿querés decir que el operador no está sobrecargado? Vas a tener que crearte el nuevo Point entonces,

    pb2.Location = new Point(pb2.Location.X - pb1.Location.X, pb2.Location.Y - pb1.Location.Y);

    supongo.


    Llevabas razón era eso, acabo de probarlo y funciona perfectamente

    Mil millones de gracias

    sábado, 2 de marzo de 2013 11:42