a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C# WinForm實現(xiàn)圖片瀏覽器

2019-10-29 21:02:39
字體:
來源:轉載
供稿:網(wǎng)友

C#WinForm程序設計之圖片瀏覽器,這次我們一起做一個圖片查看器,這個圖片查看器的原始圖如下:

C#,WinForm,圖片瀏覽器

我們首先來介紹一下這個原始圖的構成:

左邊上面是一個 TextBox 和 一個 Button,分別用來顯示當前路徑以及返回上一個路徑。左邊下面是一個瀏覽文件的文件路徑樹狀圖(TreeView),用來顯示當前路徑下的文件和文件夾。右邊是一個pictureBox,用來展示選中的圖片。

接下來我們一步一步實現(xiàn)這個圖片查看器!

首先大家應該看到了左邊的TreeView上面已經(jīng)有顯示當前PC的所有路徑信息,那么是怎么做到的呢?
方法很簡單,就是先監(jiān)聽窗口的 Load 事件,代碼如下:

private void Form1_Load(object sender, EventArgs e)    {      createDrivers();//調用下面的函數(shù)    }    private void createDrivers()    {      DirectoryInfo di;      TreeNode tn;      string s;      foreach (string ss in Environment.GetLogicalDrives())      {        /**         * ss的值形式如下:         * C:/         * D:/         * E:/         * F:/         * I:/         */        di = new DirectoryInfo(ss); //生成路徑        if (di.Exists) //如果當前路徑存在        {          s = ss.Substring(0, ss.IndexOf("//")); //去掉路徑的 / 得到如:C:          tn = new TreeNode(ss); //設置結點的值          tn.Tag = "Root";      treeView1.Nodes.Add(tn); //把結點加入到TreeView中     }  }}

接下來我們設置每個 Node 的點擊事件,也就是監(jiān)聽 AfterSelect 事件:

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)    {      TreeNode tn = e.Node; //得到發(fā)生選擇事件的結點      path = tn.FullPath;  //得到完整的路徑 path是一個定義的全局變量      textBox1.Text = path; //在左上角的文本框顯示完整的路徑      if (tn.Tag.ToString() == "File") //如果當前結點是文件      {        string ext = path.Substring(path.LastIndexOf(".") + 1); //得到文件的后綴        ext = ext.ToLower();        if (ext == "ico" || ext == "gif" || ext == "jpg" || ext == "png" || ext == "bmp") //如果是圖片,設置到右邊的pictureBox          pictureBox1.Image = Image.FromFile(path);        else //否則使用系統(tǒng)默認的工具打開該文件          System.Diagnostics.Process.Start(path);      }      else //反之當前結點是文件夾      {        getSubContents(tn);//得到當前結點的全部內容      }    }    private void getSubContents(TreeNode parent)    {      DirectoryInfo di;      TreeNode tn;      di = new DirectoryInfo(parent.FullPath + "//"); //得到路徑      if (!di.Exists) return;             //路徑不存在,直接返回      foreach (DirectoryInfo d in di.GetDirectories()) //該路徑下面的所有 文件夾      {        tn = new TreeNode(d.Name);        tn.Tag = "Directory";        parent.Nodes.Add(tn); //將該節(jié)點添加到父節(jié)點      }      foreach (FileInfo f in di.GetFiles())      {        tn = new TreeNode(f.Name); //該路徑下的所有 文件        tn.Tag = "File";        parent.Nodes.Add(tn);      }      treeNode = parent;// 全局變量 記錄當前結點    }

接下來我們運行一下看看效果(pictureBox的大小模式設置成Zoom)

C#,WinForm,圖片瀏覽器

你們有沒有成功呢?

接下來就是實現(xiàn)那個 Back 按鈕的回退功能了!

private void button1_Click(object sender, EventArgs e)    {      DirectoryInfo di = new DirectoryInfo(path + "//");      int p = path.LastIndexOf("//");      if (p >= 0)      {        path = path.Substring(0, p);        textBox1.Text = path;        if (treeNode != null) {             //全局變量 當前選中的結點          treeNode.Nodes.Clear();           //移除當前結點下的所有子節(jié)點          treeView1.SelectedNode = treeNode.Parent;  //設置他的父節(jié)點為當前選中結點        }      }    }

這樣這個小項目就算完成了,是不是很輕松?


注:相關教程知識閱讀請移步到c#教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 日韩午夜精品视频 | 国产日韩av在线 | 日韩中文字幕在线观看 | 四虎网站 | 狠狠色丁香婷婷综合 | 北条麻妃99精品青青久久主播 | 欧美在线观看一区 | 久久久久久久久久国产 | 亚洲怡红院在线 | 91麻豆精品国产91久久久久久久久 | 九色91视频| 91精品国产aⅴ | 激情毛片| 蜜桃久久一区二区三区 | 在线不卡一区 | 亚洲乱码一区二区三区在线观看 | www日批| 91亚洲精品乱码久久久久久蜜桃 | 91视频分类| 中文字幕不卡在线 | www..99re | 久久国产精品视频一区 | 久久99蜜桃综合影院免费观看 | 狠狠色伊人亚洲综合成人 | 一区在线不卡 | 国产在线一区二 | 99精品欧美一区二区三区综合在线 | 国产一级片 | 亚洲一级毛片 | 精品一区二区三区国产 | 亚洲一区免费看 | 日韩精品久久 | 亚洲高清不卡视频 | 欧美日韩在线精品 | 乱轮一区| 国产福利片在线 | 午夜精品一区二区三区在线 | 九九热这里只有精 | 欧美日韩国产免费一区二区三区 | 国产中文字幕一区 | 伊人欧美在线 |