C#編程實現(xiàn)簡易圖片瀏覽器的方法
本文實例講述了C#編程實現(xiàn)簡易圖片瀏覽器的方法。分享給大家供大家參考,具體如下:
首先需要加上命名空間 using system.io;
拖一個PICTUREBOX,兩個TEXTBOX
string fold = "";//用來存不包含文件后綴名的路徑 string[] files;//用來存當前所有統(tǒng)一后綴文件的總路徑 int pos=0;//用于圖片切換 private void button1_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog();//打開“打開文件”對話框 of.Title = "打開圖像文件";//命名 of.Filter = "圖像文件|*.bmp;*.jpg";//選擇文件 if (of.ShowDialog() == DialogResult.OK && of.FileName != "") { int p = of.FileName.LastIndexOf(@"\");//得到斜杠的索引 fold = of.FileName.Substring(0, p + 1);//得到除了文件后綴的(包含斜杠)的路徑 FileInfo fi = new FileInfo(of.FileName);//一種io下的實例方法 string ext = fi.Extension;//利用上面的方法取得擴展名 textBox1.Text = of.FileName;//總路徑 label1.Text = fold;//不含后綴,這兩行代碼完全是給讀者看的 Image image = Image.FromFile(of.FileName);//實例化一個圖片,該圖片是你選擇的那張圖片 pictureBox1.Image = image;//將該圖片放入空間內 files = Directory.GetFiles(fold, "*" + ext);//將所有當下文件夾下的圖片文件的全路徑放在該數(shù)組內 } } private void button2_Click(object sender, EventArgs e) { //下一張圖片 pos++; if (pos >=files.Length) { pos = 0; } string file = files[pos].ToString(); Image image = Image.FromFile(file); pictureBox1.Image = image; } private void button3_Click(object sender, EventArgs e) { //上一張圖片 pos--; if (pos < 0) { pos = files.Length - 1; } string file = files[pos].ToString(); Image image = Image.FromFile(file); pictureBox1.Image = image; }
效果圖如下:
問題總結如下:
1. 所有的文件名字都存在數(shù)組files里面,按說files[ ]里的元素就固定了??墒?,無論先打開哪一張圖片,點擊下一張后,都可以正確的讀出下一張(問題是POS的初值是0,無論打開哪張,下一張的執(zhí)行命令都會搜索到files[1],可每次打開的圖片不同啊,用相同的files[1]怎么還能搜索到自己對應的下一張呢,這個數(shù)組到底是咋存的)
解決方案:其實每次的files[1]是不同的,因為的比如你先打開第二張圖片,那么第一,二,三,四張圖片對應的數(shù)組元素應該是files[3],files[0],files[1],files[2];如果先打開第一張圖片,那么files[0]應該默認的是第一張圖片,files[1]自然就是第二張了(只有這樣才能說的通)。
2. 如上圖,圖片只顯示了一部分,并沒用顯示全,可能是由于控件太小了。
解決方案:為了讓圖片的顯示與PICTUREBOX相符,在button1里加如下語句:
此外還有個小BUG,如果一共有4張圖片,先打開第四張后點擊下一張,會出現(xiàn)第二張。原因是POS的初始值是0,再BUTTON2里加1也不過是1,所以選擇第四張圖片的時候跳轉到files[1]也就是第二個圖片,這里不知道怎么修改了,有大牛看到了幫忙修復下BUG。
希望本文所述對大家C#程序設計有所幫助。
上一篇:C#自定義DataGridViewColumn顯示TreeView
欄 目:C#教程
下一篇:C#給圖片添加水印完整實例
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6790.html
您可能感興趣的文章
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新聞效果的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已安裝軟件變化的方法
- 01-10C#實現(xiàn)多線程下載文件的方法
- 01-10C#實現(xiàn)Winform中打開網(wǎng)頁頁面的方法
- 01-10C#實現(xiàn)遠程關閉計算機或重啟計算機的方法
- 01-10C#自定義簽名章實現(xiàn)方法
- 01-10C#文件斷點續(xù)傳實現(xiàn)方法
- 01-10winform實現(xiàn)創(chuàng)建最前端窗體的方法


閱讀排行
本欄相關
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法
- 01-11ajax實現(xiàn)頁面的局部加載
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10C#中split用法實例總結
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改