欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊: 次

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

我們首先來介紹一下這個原始圖的構(gòu)成:

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

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

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

private void Form1_Load(object sender, EventArgs e)
    {
      createDrivers();//調(diào)用下面的函數(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) //如果當(dāng)前路徑存在
        {
          s = ss.Substring(0, ss.IndexOf("\\")); //去掉路徑的 \ 得到如:C:
          tn = new TreeNode(ss); //設(shè)置結(jié)點的值
          tn.Tag = "Root";
      treeView1.Nodes.Add(tn); //把結(jié)點加入到TreeView中
     }
  }
}

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

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
      TreeNode tn = e.Node; //得到發(fā)生選擇事件的結(jié)點
      path = tn.FullPath;  //得到完整的路徑 path是一個定義的全局變量
      textBox1.Text = path; //在左上角的文本框顯示完整的路徑
      if (tn.Tag.ToString() == "File") //如果當(dāng)前結(jié)點是文件
      {
        string ext = path.Substring(path.LastIndexOf(".") + 1); //得到文件的后綴
        ext = ext.ToLower();
        if (ext == "ico" || ext == "gif" || ext == "jpg" || ext == "png" || ext == "bmp") //如果是圖片,設(shè)置到右邊的pictureBox
          pictureBox1.Image = Image.FromFile(path);
        else //否則使用系統(tǒng)默認(rèn)的工具打開該文件
          System.Diagnostics.Process.Start(path);
      }
      else //反之當(dāng)前結(jié)點是文件夾
      {
        getSubContents(tn);//得到當(dāng)前結(jié)點的全部內(nèi)容
      }
    }

    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;// 全局變量 記錄當(dāng)前結(jié)點
    }

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

 

你們有沒有成功呢?

接下來就是實現(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) {             //全局變量 當(dāng)前選中的結(jié)點

          treeNode.Nodes.Clear();           //移除當(dāng)前結(jié)點下的所有子節(jié)點
          treeView1.SelectedNode = treeNode.Parent;  //設(shè)置他的父節(jié)點為當(dāng)前選中結(jié)點
        }
      }
    }

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

上一篇:C#實現(xiàn)字符串首字母大寫的方法示例

欄    目:C#教程

下一篇:C#實現(xiàn)BBcode轉(zhuǎn)為Markdown的方法

本文標(biāo)題:C# WinForm實現(xiàn)圖片瀏覽器

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5269.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有