2009-09-14 2 views
1

Как перемещаться по изображению с помощью клавиш со стрелками клавиатуры на C#.Навигация по изображениям

Моя первая форма содержит listView. Listview содержит 10 изображений в формате миниатюр. Изображения из адресной папки. Когда я дважды щелкните изображение в виде списка, его открытие в новом окне будет большим. Я хочу перемещать изображение в новом окне в соответствии с порядком listview.

Если я случайно нажимаю изображение, вы хотите перемещаться по изображению с выбранного изображения.

Его как диспетчер картинок Microsoft.

Plz дать мне Идея.

+0

Предполагаю, вы имеете в виду WinForm? Добавьте обработчик событий для ключевого события для вашей формы и измените источник изображения по своему усмотрению. Я не публиковал это как ответ, потому что он не детализирован и достаточно определен. Возможно, вам потребуется добавить больше обработки изображения, если размеры разные. –

ответ

2

Свойство KeyPreview для вашей формы присваивается True. Затем добавьте следующую строку кода в верхней части файла CS:

using System.IO; 

Далее, внутри рамки вашей формы, добавьте эти две строки:

private FileInfo[] _files; 
private int _currentFile; 

В случае нагрузки вашей формы, поставить это код:

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; 

Наконец, в KeyDown случае вашей формы, поместите этот код:

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; 

Этот код предполагает, что у вас есть PictureBox в форме с именем «pictureBox1», и предполагается, что в папке вашего приложения есть папка с именем «images», содержащая файлы изображений, которые вы хотите отобразить.

As o.k.w. упомянутый в комментарии, вы можете улучшить этот код, изменив размер PictureBox в соответствии с размерами файла изображения. Это можно сделать, установив свойство SizeMode вашего PictureBox в AutoSize (или установите его в CenterImage, если вы хотите, чтобы общее изображение было сосредоточено на вашей форме).

+0

Спасибо, что так много Musi – nithi

+0

@vijaii: добро пожаловать. Когда вы получаете ответ на вопрос, принято выбирать его как правильный ответ (нажмите галочку). – MusiGenesis

+0

еще один Doubt Musi, Ур предыдущий код работает отлично, но одна проблема есть, PLZ проверить мой последний отредактированный вопрос. Когда я дважды щелкаю изображение в виде списка, его открытие в новом окне в виде большого изображения. Я хочу перемещать изображение в новом окне в соответствии с порядком listview. PLZ дайте мне идею. – nithi

Смежные вопросы