miércoles, 18 de abril de 2012

Creando un presentador de imágenes con C#

En esta entrada vamos a aprender a usar el picturebox para poder crear un presentador de imágenes en C#, es decir, un programa que permita seleccionar algunas imagenes y las muestre secuencialmente.

El código en sí es simple y tiene algunos comentarios para hacerlo más entendible, no cambié el nombre de ningún componente para no revolver al lector.

También haremos uso de un control timer para ir pasando las imágenes automaticamente y un openfiledialog para permitir a los usuarios seleccionar todas las imágenes que quieran de su computadora.

Bien sin más por el momento vamos a programar:

El primer paso será crear la interfaz de usuario para eso abrimos un nuevo proyecto de WindowsForm y agregamos lo que se ve en la imagen:

Son puros botones, el cuadro gris obscuro es el picturebox y lo que vemos en la parte de abajo es un openfiledialog y un timer (los otros dos los ignoramos)


para el formulario cambie el borde a none para que no salgan botones de maximizar, minimizar y cerrar.


a continuación el código:


 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace diapositivas
{
public partial class Form1 : Form
{
List img = new List(); //creo una lista para guardar las rutas de las imágenes
int cont; int i;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "Programmed by:\nTheundertaker0";
cont = 0;
button2.Enabled = false;
button3.Enabled = false;
openFileDialog1.Multiselect = true; // para que el usuario pueda abrir varios archivos
}
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.RestoreDirectory = true;
openFileDialog1.Filter = "Archivos de imagen(*.BMP;*.JPG;*.GIF)|*.JPG;*.BMP;*.GIF"; //aquí filtro para que el cuadro de dialogo solo muestre estas extensiones
if (openFileDialog1.ShowDialog() == DialogResult.OK) //este if verifica que se haya seleccionado algo en el cuadro de dialogo
{
img = openFileDialog1.FileNames.ToList(); //llenamos la lista con los nombres de los archivos seleccionados
button2.Enabled = true;
}
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Start();
button3.Enabled = true;
button2.Enabled = false;
button1.Enabled = false;
groupBox1.Enabled = false;
i = 0;
}
private void button3_Click(object sender, EventArgs e)
{
timer1.Stop();
button3.Enabled = false;
button1.Enabled = true;
button2.Enabled = true;
groupBox1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
cont = img.Count();
if (i < cont) //si no he llegado a la última imagen { pictureBox1.Load(img[i]); //cargo la imagen en el picturebox i++; //paso a la siguiente imagen } else i = 0; //si era la última regreso a la primera } private void button4_Click(object sender, EventArgs e) { this.Close(); //boton de salir } private void button5_Click(object sender, EventArgs e) //ver primera imagen { i = 0; pictureBox1.Load(img[i]); } private void button8_Click(object sender, EventArgs e) //ver última imagen { i = img.Count() - 1; pictureBox1.Load(img[i]); } private void button6_Click(object sender, EventArgs e) //retroceder una imagen { if (i > 0) //pregunto si no estoy en la primera
{
i--;
pictureBox1.Load(img[i]);
}
}
private void button7_Click(object sender, EventArgs e) //avanzar una imagen
{
if (img.Count > -1) //pregunto si no estoy en la última
{
if (i < img.Count() - 1)
i++;
pictureBox1.Load(img[i]);
}
}
}
}

Pues bien esto es todo cualquier duda pregunte por este medio y si les gustó no olviden compartir este contenido en sus redes sociales utilizando los botones de abajo gracias

No hay comentarios:

Publicar un comentario