1. 程式人生 > >怎樣能用picturebox切換圖片 就是有一個按鈕上一張 下一張那樣

怎樣能用picturebox切換圖片 就是有一個按鈕上一張 下一張那樣

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; 遍歷檔案(目錄名); } }
   }