none
Como puedo saber el nombre de un PictureBox? RRS feed

  • Pregunta

  • Estoy haciendo una galería de imágenes, para eso agregué controles dinámicos tipo PictureBox y quiero que al dar doble clic sobre uno de estos me abra la imagen directamente, para esto asigné la ubicación de la imagen en el nombre del Picturebox y agregué el EventHandler a cada una de estas imágenes para que al dar clic en cualquiera de estas identificar la ruta de la imagen por su nombre y abrirla, ¿cómo puedo obtener el nombre del picturebox en el evento cuando el usuario lo seleccione?
    //Aquí creo el control dinámico

    string[] Im = Directory.GetFiles(@"C:\\Users\\" + Environment.UserName + "\\Pictures\\Capturas", "*.JPG");

    PictureBox lbl = new PictureBox();
    lbl.Size = new System.Drawing.Size(120, 87);
    lbl.Location = new System.Drawing.Point(x, y);
    lbl.Image = Image.FromFile(Im[i]);
    lbl.SizeMode = PictureBoxSizeMode.Zoom;
    lbl.DoubleClick += new EventHandler(abrir_Clic);
    lbl.Name = Im[i];
    panel1.Controls.Add(lbl);

    //Este es el evento en donde necesito saber el nombre del picturebox seleccionado

    private void abrir_Clic(object sender, EventArgs e)
            {
                string nombre="?";
                System.Diagnostics.Process.Start(nombre);
            }

    viernes, 31 de mayo de 2019 16:45

Respuestas

  • En el click te llega un parámetro "sender" que contiene TODO el picturebox:

    private void abrir_Clic(object sender, EventArgs e) { PictureBox pb = (PictureBox)sender; // Aquí con pb.LoQueSea puedes acceder a todas las propiedades del PictureBox // No sé en qué propiedad has metido lo que llamas "nombre" // Si te refieres a la propiedad Name, sería así: string nombre = pb.Name; }



    viernes, 31 de mayo de 2019 16:54
    Moderador

Todas las respuestas

  • En el click te llega un parámetro "sender" que contiene TODO el picturebox:

    private void abrir_Clic(object sender, EventArgs e) { PictureBox pb = (PictureBox)sender; // Aquí con pb.LoQueSea puedes acceder a todas las propiedades del PictureBox // No sé en qué propiedad has metido lo que llamas "nombre" // Si te refieres a la propiedad Name, sería así: string nombre = pb.Name; }



    viernes, 31 de mayo de 2019 16:54
    Moderador
  • Muchas gracias, funcionó a la perfección.
    viernes, 31 de mayo de 2019 16:58