c#如何把bin目录下建立image文件夹内的多张图片读取到picturebox中

c#如何把bin目录下建立image文件夹内的多张图片读取到picturebox中

问题描述:

c#如何把bin目录下建立image文件夹内的图片读取到picturebox中,并且点击上一张,下一张可以换

实现原理基本一样,区别是加载图片的方式而已,直接使用Directory.GetFiles()方法即可。
运行效果:

img

代码如下:

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,得到序号去数组拿到图片地址然后赋值给图片控件