使用winform來遞迴實現資源管理員

來源:互聯網
上載者:User

標籤:

這裡主要是對TreeView控制項的學習

所使用到的方法:
string [email protected]"E:\歌詞";

//獲得指定檔案夾下所有檔案夾的名稱,這是帶路徑的,如:E:\歌詞\1111111

Directory.GetDirectories(path);

 

//獲得指定路徑下的檔案的檔案名稱,不帶路徑與尾碼名 ,如:01 Welcome To New York

Path.GetFileNameWithoutExtension(FilePath[i])


//這是TreeNode節點的集合類
TreeNodeCollection


//TreeNode 節點可以New,可以設定text,與Tag屬性

TreeNode tn = new TreeNode();tn.Text = filename;tn.Tag = Newfilepath[i];


//TreeView控制項 有SelectedNode 擷取選中的節點,與事件 tv_AfterSelect,選中節點發生改變之後所觸發

string path = tv.SelectedNode.Tag.ToString();

代碼:

//方法需傳入絕對路徑,以及Treeview的Name的Nodes屬性private void GetNodeValue(string path, TreeNodeCollection tc)        {            //載入選定檔案夾下的檔案的名字            string[] FilePath = Directory.GetDirectories(path);            //獲得檔案的名字            string filename = string.Empty;            //獲得檔案夾的名字            for (int i = 0; i < FilePath.Length; i++)            {                filename = Path.GetFileNameWithoutExtension(FilePath[i]);                TreeNode tn = new TreeNode();                tn.Text = filename;                //在treeview節點下存下每個節點的路徑                tc.Add(tn);                //這裡遇到了遞迴,遇到檔案夾,先進入檔案夾裡面去遍曆,將大的tr,替換為小的tr                GetNodeValue(FilePath[i],tn.Nodes);            }            //因為目錄名不能被點擊,獲得目錄下的檔案            //獲得檔案夾下檔案的名字,            string[] Newfilepath = Directory.GetFiles(path);            for (int i = 0; i < Newfilepath.Length; i++)            {                filename = Path.GetFileNameWithoutExtension(Newfilepath[i]);                TreeNode tn = new TreeNode();                tn.Text = filename;                //在treeview節點下存下每個節點的路徑                tn.Tag = Newfilepath[i];                tc.Add(tn);            }        }        //然後是點擊事件,發生之後,將讀取路徑下的值,放進textbox中        private void tv_AfterSelect(object sender, TreeViewEventArgs e)        {            try            {                string path = tv.SelectedNode.Tag.ToString();                txtBox.Text = File.ReadAllText(path, Encoding.UTF8);            }            catch { }        }

 

擴充:

1、TreeView控制項和TreeNode的常用成員

AfterSelect //單擊事件

TreeView.HideSelection = False;  //可讓選中節點保持高亮

Node = TreeView.SelectedNode; //已選中的當前樹節點

string I = treeView1.SelectedNode.Index.ToString()

   //當前節點的索引值,由0開始,只限於同父、同級的節點集合

treeView1.SelectedNode.Text = “String”; //設定當前節點的文本

  string String = treeView1.SelectedNode.Text; //擷取當前節點的文本

treeView1.SelectedNode.FullPath.ToString();

  //當前節點的全路徑,從根節點開始到當前節點,由節點的Text屬性加“\”串連而成的字串,最後的節點後面沒有“\”

treeView1.SelectedNode.Tag;

  //當前節點的其他資訊,可以是各種類型,也可以是對象

treeView1.SelectedNode.Name:樹節點的名稱,也是(TreeNodes集合)TreeNodeCollection 中該節點的鍵(key)

treeView1.SelectedNode.Parent; //當前樹節點的父樹節點。

treeView1.SelectedNode.Level; //樹視圖的深度(從零開始)

2、在treeView控制項中,成員Nodes其實就是一個TreeNode的集合,所以也可以使用TreeNodeCollection的成員:

 

TreeNodeCollection 類,TreeNodes集合類

treeView1.Nodes.Add(字串);

  //以字串為顯示文本添加節點到樹集合的末尾

treeView1.Nodes.Add(TreeNode);

  //將現有的樹節點添加到樹節點集合的末尾。

treeView1.Nodes.Add(String, String):建立具有指定鍵和文本的新樹節點,並將其添加到集合中。

treeView1.Nodes.Find(string key,bool searchAllChildren):尋找具有指定鍵的樹節點,可以選擇搜尋子節點,返回一個list[]。

使用winform來遞迴實現資源管理員

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.