目录
前言
程序设计
前言
在Visual Studio下用C#实现导入图片并显示图片,同时可以通过按键来切换图片。
程序设计
功能及使用流程
该程序可实现从文件夹中批量导入图片并显示。获取图片左侧显示图片列表,右侧显示列表中选中的图片,也可通过按键选择上一张以及下一张图片。
界面
控件选择
1.三个button分别负责打开图片文件夹、上一张和下一张;
2.一个ListBox负责显示图片列表;
3.一个PictureBox负责显示图片。
单击控件——打开图片文件夹
private void btnStart_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog(); //ofd类
ofd.Title = "获取图片"; //窗口名
ofd.InitialDirectory = @"D:\"; //打开的路径
ofd.Multiselect = true; //是否允许多选
ofd.Filter = "图片文件|*.jpg|所有文件|*.*"; //支持的文件格式
ofd.ShowDialog(); //打开选择窗口
string[] picturePath = ofd.FileNames; //将选择的图片的路径存储到picturePath
listPicture.Items.Clear(); //清空窗口
for (int i = 0; i < picturePath.Length; i++)
{
listPicture.Items.Add(Path.GetFileName(picturePath[i])); //显示图片名
strListPicture.Add(picturePath[i]); //储存图片路径
}
if (listPicture.Items.Count != 0)
{
Bitmap picture = new Bitmap(picturePath[0]); //显示第一张图片
pictureBox.Image = picture;
}
}
双击控件——显示所选图片
private void listPicture_DoubleClick(object sender, EventArgs e)
{
Bitmap picture = new Bitmap(strListPicture[listPicture.SelectedIndex]);
pictureBox.Image = picture;
}
单击控件——上一张
private void btnUp_Click(object sender, EventArgs e)
{
try
{
int index = listPicture.SelectedIndex; //获取当前选择选项索引
index--; //索引指向上一张图片
if (index == -1)
{
index = listPicture.Items.Count - 1; //从尾开始
}
listPicture.SelectedIndex = index; //改变索引后改变选项索引
Bitmap picture = new Bitmap(strListPicture[index]);
pictureBox.Image = picture;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
<同理可实现单击控件下一张>
源码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace picture
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 用来存放图片的全路径的泛型
List<string> strListPicture = new List<string>();
private void btnStart_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog(); //ofd类
ofd.Title = "获取图片"; //窗口名
ofd.InitialDirectory = @"D:\"; //打开的路径
ofd.Multiselect = true; //是否允许多选
ofd.Filter = "图片文件|*.jpg|所有文件|*.*"; //支持的文件格式
ofd.ShowDialog(); //打开选择窗口
string[] picturePath = ofd.FileNames; //将选择的图片的路径存储到picturePath
listPicture.Items.Clear(); //清空窗口
for (int i = 0; i < picturePath.Length; i++)
{
listPicture.Items.Add(Path.GetFileName(picturePath[i])); //显示图片名
strListPicture.Add(picturePath[i]); //储存图片路径
}
if (listPicture.Items.Count != 0)
{
Bitmap picture = new Bitmap(picturePath[0]); //显示第一张图片
pictureBox.Image = picture;
}
}
/// <summary>
/// 实现双击显示图片
/// </summary>
private void listPicture_DoubleClick(object sender, EventArgs e)
{
Bitmap picture = new Bitmap(strListPicture[listPicture.SelectedIndex]);
pictureBox.Image = picture;
}
private void btnUp_Click(object sender, EventArgs e)
{
try
{
int index = listPicture.SelectedIndex; //获取当前选择选项索引
index--; //索引指向上一张图片
if (index == -1)
{
index = listPicture.Items.Count - 1; //从尾开始
}
listPicture.SelectedIndex = index; //改变索引后改变选项索引
Bitmap picture = new Bitmap(strListPicture[index]);
pictureBox.Image = picture;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private void btnDown_Click(object sender, EventArgs e)
{
try
{
int index = listPicture.SelectedIndex; //获取当前选项索引
index++; //索引指向下一张图片
if (index == listPicture.Items.Count)
{
index = 0; //从头开始
}
listPicture.SelectedIndex = index; //改变索引后改变选项索引
Bitmap picture = new Bitmap(strListPicture[index]);
pictureBox.Image = picture;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}