用什么都可以,这个没什么关系的,在显示图片的地方,你可以假设他是一个button,也可以假设它是一个picture,或其他什么的,你要做的只是在点击上一部分时,要更新那个显示图片的控件的某个属性

解决方案 »

  1.   

    用Imagelist控件存放图片
    int j=0;
    下一部分按钮事件
              if (j == imageList1.Images.Count)
                {
                    j = 0;
                }
                pictureBox1.Image = imageList1.Images[j];
                j++;下一部分按钮事件
              if (j ==0)
                {
                    j = imageList1.Images.Count-1;
                }
                pictureBox1.Image = imageList1.Images[j];
                j--;
      

  2.   


     public partial class Form1 : Form
        {
            int i=0;       
       
            public Form1()
            {
                InitializeComponent();
            }
      
            private void Form1_Load(object sender, EventArgs e)
            {
                //初始化
                pictureBox1.Image = imageList1.Images[0];
            }
            //下一步
            private void button2_Click(object sender, EventArgs e)
            {            if (i == imageList1.Images.Count-1)
                {
                    i = 0;
                    pictureBox1.Image = imageList1.Images[i];
                }
                else
                {
                    i = i + 1;
                    pictureBox1.Image = imageList1.Images[i];
                }
            }
         //  上一步
            private void button3_Click(object sender, EventArgs e)
            {
                if (i == 0)
                {
                    i = imageList1.Images.Count - 1;
                    pictureBox1.Image = imageList1.Images[i];            }
                else
                {
                    i = i - 1;
                    pictureBox1.Image = imageList1.Images[i];
                }
            }
        }
      

  3.   

    千万别听楼上两位说的,把图片放到ImageList:
    1. 放到ImageList里,启动运行时是会占内存的,如果图片很多很大~~~~
    2. ImageList里放的一般都是很小的图片,如果大图片扔进去,图片质量,大小都会被严重改造
    3. 不明白为什么会想到放到ImageList里,就算说放到资源里,也比ImageList强太多
      

  4.   

    imageList 控件是不是要先拖到界面中啊?但是我试了一下,拖不进去
      

  5.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Threading;namespace WindowsFormsApplication1
    {
        /// <summary>
        /// 改变图片委托,我又滥用委托了
        /// </summary>
        /// <param name="message"></param>
        public delegate void ChangeImageHandler(String message);    public partial class Form1 : Form
        {
            private ShowPic _ShowPic;        public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                _ShowPic = new ShowPic(pictureBox1);
                _ShowPic.ChangeImage += new ChangeImageHandler(ChangeImage);
                _ShowPic.Load(@"F:\Files\相片\2", SearchOption.TopDirectoryOnly);
            }        private void button1_Click(object sender, EventArgs e)
            {
                // 显示上一张图片
                _ShowPic.Last();
            }        private void button2_Click(object sender, EventArgs e)
            {
                // 显示下一张图片
                _ShowPic.Next();
            }        private void ChangeImage(String message)
            {
                // 改变图片事件
                this.Text = message;
            }        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (_ShowPic != null)
                {
                    _ShowPic = null;
                }
            }
        }    /// <summary>
        /// 显示图片类
        /// </summary>
        public sealed class ShowPic
        {
            /// <summary>
            /// 改变图片事件,我又滥用事件了
            /// </summary>
            public event ChangeImageHandler ChangeImage;
     
            /// <summary>
            /// 图片列表
            /// </summary>
            private String[] _ArrPicPath;        /// <summary>
            /// 图片索引值
            /// </summary>
            private Int32 _Index;        /// <summary>
            /// 要显示图片的PictureBox控件
            /// </summary>
            private PictureBox _PictureBox;        /// <summary>
            /// 改变图片事件触发函数
            /// </summary>
            /// <param name="message"></param>
            private void OnChangeImage(String message)
            {
                ChangeImageHandler temp = Interlocked.CompareExchange<ChangeImageHandler>(ref ChangeImage, null, null);
                if (temp != null)
                {
                    temp(message);
                }
            }        /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="pictureBox">PictureBox控件</param>
            public ShowPic(PictureBox pictureBox)
            {
                _PictureBox = pictureBox;
                _Index = 0;
            }        /// <summary>
            /// 加载图片
            /// </summary>
            /// <param name="path">文件夹路径</param>
            /// <param name="searchOption">搜索参数</param>
            public void Load(String path, SearchOption searchOption)
            {
                if (!Directory.Exists(path))
                {
                    OnChangeImage(path + " 路径不存在");
                    throw new DirectoryNotFoundException(path + " 路径不存在");
                }            // 获取文件夹下所有图片
                _ArrPicPath = System.IO.Directory.GetFiles(path,"*.jpg", searchOption);            // 加载第一步图片
                LoadImage();
            }        /// <summary>
            /// 上一张
            /// </summary>
            public void Last()
            {
                lock (_ArrPicPath)
                {
                    if (_Index > 0)
                    {
                        _Index--;
                    }
                    else
                    {
                        OnChangeImage("已经是第一张");
                        return;
                    }
                } 
                
                LoadImage();
            }        /// <summary>
            /// 下一张
            /// </summary>
            public void Next()
            {
                lock (_ArrPicPath)
                {
                    if (_Index < _ArrPicPath.Length - 1)
                    {
                        _Index++;
                    }
                    else
                    {
                        OnChangeImage("已经是最后一张");
                        return;
                    }
                }            LoadImage();
            }        /// <summary>
            /// 加载图片到PictureBox
            /// </summary>
            private void LoadImage()
            {
                if (_ArrPicPath == null || _ArrPicPath.Length <= 0)
                {
                    OnChangeImage("没有图片");
                    return;
                }            String path = _ArrPicPath[_Index];
                if (File.Exists(path))
                {
                    _PictureBox.Load(path);
                    OnChangeImage(path);
                }
            }
        }
    }
      

  6.   

    ceshi网络测试yyyyyyyyyyyyyyyyyyyyyy!
      

  7.   

     大牛能解释下,为什么imglist会占用很大的内存,而且会把图片质量拉下来?
      

  8.   

    是在 _ShowPic.Load(@"F:\Files\相片\2", SearchOption.TopDirectoryOnly);
    换上图片所在路径么?为什么我点击之后会出现:
    _ShowPic.Last();   未将对象引用设置到对象的实例。
      

  9.   

    比较简单的方法
    LZ可以在打开小窗体的时候把图片地址放入一个string数组里面
    在小窗体上面放一个picturebox ,根据传过来的图片地址显示图片,根据数组中index 上一张  下一张
      

  10.   

    picturebox.读取文件夹中的图片你可以 先把目录下面的文件名保存起来.
    然后通过文件名来读取文件.显示