做了图片查看器,可以打开图片,现在想实现上一张下一张同文件夹内的图片,请大家指导

  private void btnOpen_Click(object sender, EventArgs e)//打开
    {

        OpenFileDialog file = new OpenFileDialog();
        file.InitialDirectory = ".";
        file.Filter = "*.BMP;*.JPG;*.GIF|*.BMP;*.JPG;*.GIF";     // "所有文件(*.*)|*.*";
        file.Multiselect = true;  //鼠标多选
        file.ShowDialog();
        if (file.FileName != string.Empty)
        {
            try
            {
                picNum = 0;
                
                pathname = file.FileName;//获得文件的绝对路径
                picPath = file.FileNames;
                picLength = picPath.Length;

                this.panel_Picture.Load(picPath[0]);

                // this.panel_Picture.Load(pathname);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }
    }

点击上一张,下一张的时候分别增加和减小picNum的下标值,然后把picPath[picNum]的图片地址赋值给图片控件即可,伪代码如下:

private void btnNext_Click(object sender, EventArgs e)
{
    picNum++;
    // 这里需要处理picNum是否超过了图片集合的最大下标值
    panel_Picture.Image = Image.FromFile(picPath[picNum]);
}

还是给你写一份完整的源码吧,示例代码如下:

namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private int picNum = 0;
        private string pathname = "";
        private string[] picPath;
        private int picLength = 0;
        private void btnOpen_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            file.InitialDirectory = ".";
            file.Filter = "*.BMP;*.JPG;*.GIF;*.PNG|*.BMP;*.JPG;*.GIF;*.PNG";     // "所有文件(*.*)|*.*";
            file.Multiselect = true;  //鼠标多选
            file.ShowDialog();
            if (file.FileName != string.Empty)
            {
                try
                {
                    picNum = 0;
                    pathname = file.FileName;//获得文件的绝对路径
                    picPath = file.FileNames;
                    picLength = picPath.Length;
                    this.panel_Picture.Load(picPath[0]);
                    // this.panel_Picture.Load(pathname);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

        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]);
        }
    }
}

运行结果如下图:

img

重命名图片,在末尾按固定格式加上有规律的数字,然后点上一张和下一张用名字后面的数字加减就好了