none
Configurar PictureBox en Tiempo de Ejecución en C# RRS feed

  • Pregunta

  • Hola, 

    Estoy programando un formulario donde, desde el mismo código, abro dos PictureBox y les asigno una imagen a cada uno. El código, tal y como lo tengo, esta de la siguiente manera:

    namespace Pruebas
    {
        public partial class Form1 : Form
        {
            //Creamos la variable de los Picture Box
            PictureBox imgPB1 = new PictureBox();
            PictureBox imgPB2 = new PictureBox();
    
            public Form1()
            {
                InitializeComponent();
    
                //Damos lo datos para cada PictureBox en el form
                imgPB1.Location = new System.Drawing.Point(30, 30);
                imgPB2.Location = new System.Drawing.Point(30, 190);
    
                imgPB1.SizeMode = PictureBoxSizeMode.StretchImage;
                imgPB2.SizeMode = PictureBoxSizeMode.StretchImage;
    
                imgPB1.Image = Image.FromFile("C:/imgs/img1.jpg");
                imgPB2.Image = Image.FromFile("C:/imgs/img2.jpg");
    
                Controls.Add(imgPB1);       imgPB1.Visible = true;
                Controls.Add(imgPB2);       imgPB2.Visible = true;
            }
        }
    }

    Cabe destacar que no inserté ningún PictureBox en la parte gráfica del formulario, sino que los estoy creando en ese mismo momento, por lo tanto, si borrara el código anteriormente escrito mi formulario estaría vacío.

    Bueno, el problema es este:

    Necesito configurar cada PictureBox de la manera que cada vez que pase el mouse por encima de cada uno la imagen se agrande un poco, y cuando yo le dé clic a una de ellas me aparezca un Cuadro de Diálogo mediante un MessageBox.Show()

    En sí, sería como convertir el PictureBox en un botón, es decir quiero que tenga sus propiedades. Quiero saber como configurar el evento para que esto suceda.

    No se, me imagino que para que al darle clic y me aparezca el Cuadro de Diálogo sería algo así como:

    //Creo que sería algo así, pero ya intenté hacerlo y no funciona
    
    private void imgPB1_Click(object sender, EventArgs e)
            {
                MessageBox.Show("Acabas de pesionar la primera imagen");
            }
    
    private void imgPB2_Click(object sender, EventArgs e)
            {
                MessageBox.Show("Acabas de pesionar la segunda imagen");
            }



    sábado, 12 de marzo de 2016 17:34

Respuestas

  • Sí, el PictureBox tiene efectivamente un evento Click. Puedes conectar el manejador por código después de crear el PictureBox en la misma manera en la que conectarías cualquier evento definido en una de tus clases:

    imgPB1.Click += imgPB1_Click;

    imgPB2.Click += imgPB2_Click;

    sábado, 12 de marzo de 2016 20:27