在winform中,利用目录选择对话框,pictureBox,listBox,textBox,以及一个Button可以实现一个简单图片查看器的功能,在这里做一下简单的介绍。首先我们进行简单的布局并给控件设置合适的name。
首先我们在文本框里加载出图片文件夹的路径
private void browseBtn_Click(object sender, EventArgs e)
{
FolderBrowserDialog dlg = new FolderBrowserDialog();
if (dlg.ShowDialog() == DialogResult.OK)
{
string dir = dlg.SelectedPath;
this.pathField.Text = dir;
// 加载图片列表
ShowPictureList(dir);
}
其次我们加载出来文件夹中所有照片并设置第一张照片默认显示:
private void ShowPictureList(string dir)
{
// 清空显示
listField.Items.Clear();
// 遍历所有的文件,检查文件名后缀
string[] fff = Directory.GetFiles(dir);
foreach (string f in fff)
{
if(f.EndsWith(".jpg")
|| f.EndsWith(".jpeg")
|| f.EndsWith(".png"))
{
// 取得文件名
PictureListItem item = new PictureListItem();
item.filePath = f;
item.name = Path.GetFileName(f);
// 加到列表框显示
listField.Items.Add(item);
}
}
// 默认打开第一个文件显示
if (listField.Items.Count > 0)
listField.SetSelected(0, true);
}
最后设置点击不同的图片,将图片显示到图片框中:
private void listField_SelectedIndexChanged(object sender, EventArgs e)
{
PictureListItem item = (PictureListItem)listField.SelectedItem;
if (item == null) return;
picField.Load(item.filePath);
}
最后补充一下前面用到的类PictureListItem的定义:
class PictureListItem
{
public string name;
public string filePath;
public override string ToString()
{
return name;
}
}