怎樣能用picturebox切換圖片 就是有一個按鈕上一張 下一張那樣
阿新 • • 發佈:2019-01-24
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; 遍歷檔案(目錄名); } } }