我学的是C#  请问怎样能用picturebox切换图片 就是有一个按钮上一张 下一张那样
顺便请教各位如何学好C#这个项目 
谢谢了

解决方案 »

  1.   

    切换的图片从哪儿来?
    我的理解你的需求应该是
    输入某个路径》显示该路径下某一张图片》点击下一张 显示该路径下另一张图片
    如果是CS 你可以定位到某个路径下 然后获取文件集合 找出所有的图片格式的文件 把他们的路径放到一个list里面 picturebox显示该list里面的元素
    点击下一张 就让picturebox显示list里面下一个元素指向的图片
    仅仅提供个思路
    大一就开始做C# 希望你能坚持到大四
      

  2.   

    看我这小学毕业的送你一些代码了: 
    private void 相册浏览_Click(object sender, EventArgs e)
            {//private Bitmap SourceBitmap, MyBitmap;
                OpenFileDialog 打开文件 = new OpenFileDialog(); this.图像显示.Image = null;//打开图像文件//打开文件.Multiselect = true;
                打开文件.Filter = "图像文件(JPeg, Gif, Bmp, etc.)|*.jpg;*.jpeg;*.gif;*.bmp;*.tif; *.tiff; *.png|"
                    + " JPeg 图像文件(*.jpg;*.jpeg)|*.jpg;*.jpeg |GIF 图像文件(*.gif)|*.gif |BMP图像文件(*.bmp)|*.bmp|"
                    + "Tiff图像文件(*.tif;*.tiff)|*.tif;*.tiff|Png图像文件(*.png)| *.png |所有文件(*.*)|*.*";
                if (打开文件.ShowDialog() == DialogResult.OK) { 显示图像(打开文件.FileName); 上一图.Enabled = false; 下一图.Enabled = false; } else { 上一图.Enabled = true; 下一图.Enabled = true; }
                FolderBrowserDialog 文件夹 = new FolderBrowserDialog(); 文件夹.Description = "请选择图像文件夹路径:";
                if (this.Text.IndexOf("^") >= 0)
                {
                    if (图像文件表 == null)
                    {
                        string[] 设备目录 = this.Text.Split(new char[2] { '[', ']' });
                        String 保存路径 = @System.Environment.CurrentDirectory + "\\设备相册集\\" + 设备目录[1];
                        保存路径 = 保存路径.Replace("/", "\\"); System.Diagnostics.Process.Start("explorer.exe ", 保存路径);
                    }
                }
                else
                { if (文件夹.ShowDialog() == DialogResult.OK) { 图数.Text = "没图?"; string 目录名 = @文件夹.SelectedPath; 遍历文件(目录名); } }
                //DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
                //try { if (di.Exists) { return; } di.Create(); di.Delete(); }
                //catch (Exception ee) { Console.WriteLine("The process failed: {0}", ee.ToString()); }
                //finally { }
            }        private void 遍历文件(string 指定目录)
            {
                DirectoryInfo 目录 = new DirectoryInfo(指定目录);
                //DirectoryInfo[] 子目录集 = 目录.GetDirectories();
                //foreach (DirectoryInfo 读目 in 子目录集)
                //{
                //    if (读目.Parent.ToString() == "Image") { }
                //    FileInfo[] 文件列表 = 读目.GetFiles();
                //    foreach (FileInfo 读件 in 文件列表) { }
                //    DirectoryInfo[] 返回子目录 = 读目.GetDirectories();
                //    if (返回子目录.Length > 0) { 遍历文件(读目.FullName); }
                //}
                //DirectoryInfo 目录 = new DirectoryInfo(指定目录);
                int i = 0; string 图类 = "*.JPG*.JPEG*.GIF*.BMP*.TIF*.TIFF*.PNG*.ICO*.jpg*.jpeg*.gif*.bmp*.tif*.tiff*.png*.ico";
                图像文件表 = new string[目录.GetFiles().Length - 目录.GetFiles("*.ini").Length];
                foreach (FileInfo 读名 in 目录.GetFiles())
                { if (图类.IndexOf(读名.Extension) >= 0) { 图像文件表[i] = 目录.FullName + "\\" + 读名.Name; i++; } }
                if (图像文件表.Length > 0 && 图像文件表[0] != null) { 显示图像(图像文件表[0]); 图数.Text = "1/" + 图像文件表.Length.ToString(); 上一图.Enabled = true; 下一图.Enabled = true; }
            }        private void 显示图像(string 文件径名)
            {
                if (文件径名 != null)
                {
                    Bitmap 原始图像 = new Bitmap(文件径名);//得到原始大小的图像
                    if (图像显示.Width > 原始图像.Width) { 图像显示.Width = 原始图像.Width; this.图像显示.Image = 原始图像; }
                    else if (图像显示.Height > 原始图像.Height) { 图像显示.Height = 原始图像.Height; this.图像显示.Image = 原始图像; }
                    else//得到缩放后的图像
                    { Bitmap 显示图象 = new Bitmap(原始图像, this.图像显示.Width, this.图像显示.Height); this.图像显示.Image = 显示图象; }
                }
                else { MessageBox.Show("该文件不是图形图像文件,无法显示浏览!", "错误提示"); }
            }
    private void 上一图_Click(object sender, EventArgs e)
            {
                if (公共数[0] < 图像文件表.Length - 1 && 图像文件表 != null)
                { 公共数[0]++; if (图像文件表[公共数[0]] != null) { 显示图像(图像文件表[公共数[0]]); 图数.Text = (公共数[0] + 1).ToString() + "/" + 图像文件表.Length.ToString(); }
                else { if (公共数[0] == 图像文件表.Length) { MessageBox.Show("文件浏览已经到最后面!", "友情提示"); } else MessageBox.Show("该文件不是图形图像文件,无法显示浏览!", "错误提示"); } }
            }        private void 下一图_Click(object sender, EventArgs e)
            {
                if (公共数[0] <= 图像文件表.Length && 公共数[0] > 0 && 图像文件表 != null)
                { 公共数[0]--; 显示图像(图像文件表[公共数[0]]); 图数.Text = (公共数[0] + 1).ToString() + "/" + 图像文件表.Length.ToString(); }
                else { if (公共数[0] == 0) { MessageBox.Show("文件浏览已经到最前面!", "友情提示"); } else { MessageBox.Show("该文件不是图形图像文件,无法显示浏览!", "错误提示"); } }
            }        private void 图像显示_DoubleClick(object sender, EventArgs e)
            {
                FolderBrowserDialog 文件夹 = new FolderBrowserDialog(); 文件夹.Description = "请选择保存图像文件夹路径:";
                if (this.Text.IndexOf("^") >= 0)
                {
                    string[] 设备目录 = this.Text.Split(new char[2] { '[', ']' });
                    String 保存路径 = @System.Environment.CurrentDirectory + "\\设备相册集\\" + 设备目录[1];
                    保存路径 = 保存路径.Replace("/", "\\"); System.Diagnostics.Process.Start("explorer.exe ", 保存路径);
                }
                else
                { if (文件夹.ShowDialog() == DialogResult.OK) { 图数.Text = "没图?"; string 目录名 = @文件夹.SelectedPath; 遍历文件(目录名); } }
            }
      

  3.   

    每点一次按钮就重新设置pictureBox的数据源。