Ciao, partendo dal tuo codice (usa sempre i tag code se no è poco leggibile il codice) :
codice:
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;
using System.IO;
namespace galleria_immagini
{
public partial class Form1 : Form
{
public static string targetDirectory;
string[] immagini;//<---qui va solo la dichiarazione
int contatore = 0;
public Form1()
{
InitializeComponent();
}
public void but_sfoglia_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
targetDirectory = folderBrowserDialog1.SelectedPath;
immagini = Directory.GetFiles(targetDirectory)
.Where(s => s.EndsWith(".png") || s.EndsWith(".jpg") || s.EndsWith(".gif")).ToArray(); //<--qui carichi i path delle immagini (solo quelle...) dando come filtro le estensioni
}
}
private void but_visualizza_Click(object sender, EventArgs e)
{
if (immagini == null)//<---qui controlli se è stato già scelto il percorso
{
MessageBox.Show("Non hai selezionato il percorso del file immagine da visualizzare!");
}
else
{
if (contatore < 0 || contatore >= immagini.Length) contatore = 0;//<--qui controlli che il contatore non sia fuori range
pictureBox1.Image = Image.FromFile(immagini[contatore]);//<--- qui carichi l'immagine (partendo dalla prima)
}
}
private void checkAdatta_CheckedChanged(object sender, EventArgs e)
{
if (checkAdatta.Checked)
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}
else
{
pictureBox1.SizeMode = PictureBoxSizeMode.Normal;
}
}
private void but_avanti_Click(object sender, EventArgs e)
{
if (contatore >= immagini.Length-1) contatore = -1;//<-- se sei arrivato all'ultima immagine riparti dala prima
pictureBox1.Image = Image.FromFile(immagini[++contatore]);//<--aumenti il contatore
}
private void but_indietro_Click(object sender, EventArgs e)
{
if (contatore < 1) contatore = immagini.Length;//<-- se sei arrivato alla prima immagine riparti dall'ultima
pictureBox1.Image = Image.FromFile(immagini[--contatore]);//<---dimuinuisci il contatore
}
}
}