Définissez la propriété KeyPreview de votre formulaire sur True. Ensuite, ajoutez cette ligne de code en haut de votre fichier CS:
using System.IO;
Ensuite, dans le cadre de votre formulaire, ajoutez ces deux lignes:
private FileInfo[] _files;
private int _currentFile;
Dans le cas de charge de votre formulaire, mettez ce Code:
DirectoryInfo dirinfo = new DirectoryInfo(
Path.Combine(Application.StartupPath, "images"));
_files = dirinfo.GetFiles();
_currentFile = 0;
Bitmap bmp = (Bitmap)Bitmap.FromFile(_files[_currentFile].FullName);
pictureBox1.Image = bmp;
Enfin, dans le cas KeyDown de votre formulaire, mettez ce code:
if (e.KeyCode == Keys.Down)
{
_currentFile--;
if (_currentFile < 0)
{
_currentFile = _files.Length - 1;
}
}
else if (e.KeyCode == Keys.Up)
{
_currentFile++;
if (_currentFile >= _files.Length)
{
_currentFile = 0;
}
}
Bitmap bmp = (Bitmap)Bitmap.FromFile(_files[_currentFile].FullName);
if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
}
pictureBox1.Image = bmp;
Ce code suppose que vous avez un PictureBox sur votre formulaire nommé "pictureBox1", et il suppose que vous avez un dossier nommé "\ images" dans votre dossier d'application qui contient les fichiers d'image que vous souhaitez afficher.
En tant que brebis. mentionné dans un commentaire, vous souhaiterez peut-être améliorer ce code en redimensionnant le PictureBox pour qu'il corresponde aux dimensions du fichier image. Vous pouvez le faire en définissant la propriété SizeMode de votre PictureBox à AutoSize (ou définissez-le à CenterImage, si vous souhaitez conserver l'image globale centrée sur votre formulaire).
Je suppose que vous faites référence à WinForm? Ajoutez un gestionnaire d'événement pour l'événement de raccourci clavier pour votre formulaire et modifiez la source d'image comme vous le souhaitez. Je n'ai pas posté cela comme réponse parce que ce n'est pas assez détaillé et précis. Vous devrez peut-être ajouter plus de manipulation du changement d'image si les tailles sont différentes. –