c#如何把bin目录下建立image文件夹内的多张图片读取到picturebox中
问题描述:
c#如何把bin目录下建立image文件夹内的图片读取到picturebox中,并且点击上一张,下一张可以换
答
实现原理基本一样,区别是加载图片的方式而已,直接使用Directory.GetFiles()方法即可。
运行效果:
代码如下:
using System;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private int picNum = 0;
private string[] picPath;
private int picLength = 0;
private void btnPrevious_Click(object sender, EventArgs e)
{
picNum--;
if (picNum < 0)
{
MessageBox.Show("已经是第一张了");
picNum = 0;
return;
}
panel_Picture.Image = Image.FromFile(picPath[picNum]);
}
private void btnNext_Click(object sender, EventArgs e)
{
picNum++;
if (picNum > picLength - 1)
{
MessageBox.Show("已经是最后一张了");
picNum = picLength - 1;
return;
}
panel_Picture.Image = Image.FromFile(picPath[picNum]);
}
private void Form1_Load(object sender, EventArgs e)
{
var exts = new[] { ".png", ".jpg", ".gif", ".bmp" };
var path = AppDomain.CurrentDomain.BaseDirectory;
picPath = Directory.GetFiles(Path.Combine(path, "img"))
.Where(x => exts.
Any(s => x.ToLower().EndsWith(s)))
.ToArray();
if (picPath.Length <= 0)
{
MessageBox.Show("没有读取到图片");
return;
}
picLength = picPath.Length;
picNum = 0;
this.panel_Picture.Load(picPath[0]);
}
}
}
答
又是你,哈哈!!!
昨天晚上你的切换上一张,下一张的问题还没解决吗?
答
这会回复不了,一直报系统繁忙。
答
思路其实很简单 遍历image文件夹里的文件, 把图片地址取出来放进后台数组,后台记一下使用图片的数组序号,点下一张就加1 上一张就减1,得到序号去数组拿到图片地址然后赋值给图片控件