C sharp - mostrar imágenes en un picturebox

 
Vista:

mostrar imágenes en un picturebox

Publicado por juan lopez (17 intervenciones) el 23/12/2019 00:19:45
hola que quiero hacer es mostrar varias imágenes y cambiarlas con dos botones uno de siguiente y el otro anterior y el problema es que tienes que presionar mas de 1 ves para pasar o regresar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
private void picDerecha_Click(object sender, EventArgs e)
{
 
    valor ++;
 
    if (valor == 1)
    {
         picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
    }
    else if (valor == 2)
    {
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
    }
    else if (valor == 3)
    {
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
    }
    else if (valor == 4)
    {
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
    }
    else if (valor == 5)
    {
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
        valor = 0;
    }
    else
    {
        valor = 0;
    }
 
}
 
private void picIzquierda_Click(object sender, EventArgs e)
{
 
    valor  --;
 
    if (valor == 1)
    {
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
    }
    else if (valor == 2)
    {
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
    }
    else if (valor == 3)
    {
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
    }
    else if (valor == 4)
    {
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
    }
    else if (valor == 5)
    {
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
        valor = 6;
    }
    else
    {
        valor = 5;
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Roy
Val: 66
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

mostrar imágenes en un picturebox

Publicado por Roy (19 intervenciones) el 23/12/2019 19:56:20
Si realizas este proceso con if-else haces que la ejecucion sea mas lenta, ya que el proceso necesita pasar por cada uno de los condicionales para completarse. La mejor manera es por medio de un switch.
Por otro lado, despues de cargar Image en PictureBox, debes agregar un Refresh para que se actualice la nueva imagen cargada.
Por ultimo, si solo son 5 imagenes, no es necesario asignar los valores de 0 y 6, ya que estos nunca se utilizan.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
valor++;
switch (valor)
{
     case 1 :
         picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
         break;
      case 2 :
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
        break;
      case 3 :
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
        break;
      case 4 :
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
        break;
      case 5 :
        picImagen.Image = Image.FromFile(Application.StartupPath + "\\carpeta\\imagene.png");
        valor = 1;     //al llegar a la ultima imagen (5), vuelve al inicio (1)
        break;
}
picImagen.Refresh();
Logicamente, en cada case debe asignarse una imagen diferente, no la misma, como estas haciendo en este momento.
El ejemplo que te muestro aplica para picDerecha, tendrias que adaptarlo para el otro button.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar