C#第二次作业--顺序图片显示器

作业要求:

目标2:“顺序图片显示器”开发

有5张图片(编号分别为1.jpg,2.jpg,……,5.jpg),窗体有3个控件(PictureBox,2个按钮);窗体刚开始显示”1.jpg“,按”上一张“则显示”5.jpg“(循环显示),按”下一张“则显示”2.jpg“,依此类推。这里我将要求改了一下,改为可以打开任意有图片的文件夹,并浏览图片。


部分源码:

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 PictureBox
{
    public partial class PictureBox : Form
    {
        public PictureBox()
        {
            InitializeComponent();
        }
       
        public FileInfo[] f1;
        
        public int savInt = 0;

        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string filename = openFileDialog1.FileName;
                FileInfo fileifo = new FileInfo(filename);
                DirectoryInfo filelist = new DirectoryInfo(fileifo .Directory .ToString ());

                 f1 = filelist.GetFiles();//文件名数组
              
                try
                {
                    pictureBox1.Image = new Bitmap(filename);
                    for (int i = 0; i < f1.Length; i++)
                    {
                        if (f1[i].FullName == filename)
                        {
                            savInt = i;//将打开文件对齐到数组
                        }
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("fail");
                }
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (savInt >= f1.Length-1) { MessageBox.Show("NoMore"); }
            else
            {
                try
                {
                    pictureBox1.Image = new Bitmap(f1[savInt + 1].FullName);
                    savInt++;
                }
                catch (Exception)
                {
                    MessageBox.Show("fail");
                }
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            if (savInt <= 0) { MessageBox.Show("NoMore"); }
            else
            {
                try
                {
                    pictureBox1.Image = new Bitmap(f1[savInt - 1].FullName);
                    savInt--;
                }
                catch (Exception)
                {
                    MessageBox.Show("fail");
                }
            }
        }
    }
}

运行截图:

C#第二次作业--顺序图片显示器_第1张图片


体会与感想:

写这个程序花了我挺长时间的,在现在看来,这个程序很简单。但开始的时候,特别是解决上下张图片问题上,思考的过程总是有点折磨的,特别是面对你从没接触过的东西。解决问题的关键是不断搜索自己想要的资料。这个程序还有一些BUG,上下张图片的文件过滤上没下功夫,希望有兴趣的同学能够指导一下。

你可能感兴趣的:(C#第二次作业--顺序图片显示器)