標籤:
這裡主要是對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來遞迴實現資源管理員