2009-09-14 91 views
1

如何使用C#中的键盘箭头键导航图像。图像导航

我的第一个表单包含listView。列表视图包含10张缩略图格式的图片。图片来自相关文件夹。当我在列表视图中双击图像时,它将在新窗口中以大图形式打开。我想按照listview顺序在新窗口中导航图像。

如果我随机点击图像,想从所选图像导航图像。

它就像一个微软图片管理器。

Plz给我一个想法。

+0

我假设你指的是WinForm?为表单的按键事件添加事件处理程序,并根据需要更改图像源。我没有发布这个答案,因为它不够详细和具体。如果尺寸不同,您可能需要添加更多的图像更改处理。 – 2009-09-14 03:21:44

回答

2

将表单的KeyPreview属性设置为True。然后这行代码添加到您的CS文件的顶部:

using System.IO; 

接下来,你的表格的范围内,加这两条线:

private FileInfo[] _files; 
private int _currentFile; 

在窗体的Load事件,把这个代码:

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; 

此代码假定您的窗体上有一个名为“pictureBox1”的PictureBox,并且它假定您的应用程序文件夹中有一个名为“\ images”的文件夹,其中包含要显示的图像文件。

As o。ww。在评论中提到,您可能希望通过调整PictureBox的大小来适应图像文件的尺寸来增强此代码。您可以通过将PictureBox的SizeMode属性设置为AutoSize(或将其设置为CenterImage,如果希望将整个图像保持在窗体中心)来实现。

+0

非常感谢你Musi – nithi 2009-09-14 09:43:54

+0

@vijaii:不客气。当你得到一个问题的答案时,通常选择它作为正确答案(点击选中标记)。 – MusiGenesis 2009-09-14 11:59:43

+0

一个疑问穆西, 乌尔先前的代码工作完美,但有一个问题是,请检查我最近编辑的问题。 当我双击列表视图中的图像时,它将在新窗口中以大图形的形式打开。我想按照listview顺序在新窗口中导航图像。 PLZ给我一个主意。 – nithi 2009-09-14 12:21:57