c#——Winform DatagridView上顯示下拉樹(二)
阿新 • • 發佈:2019-02-08
除了能夠顯示可下拉的樹,提供選擇。
當樹中資料比較多的時候,我們肯定還希望能夠對樹中內容進行查詢,於是擴充套件繼續
首先需要看上一篇部落格
http://blog.csdn.net/Shiyaru1314/article/details/51920494
基於上一篇這裡再做一些擴充套件
當然其實查詢也可以放在我們實際的模組中在進行操作
但是為了能夠對擴充套件的空間重複方便的使用,就在擴充套件控制元件中新增該功能
在ComboBoxTreeView類中,新增如下程式碼
主要是對樹結構的遞迴查詢樹中所有節點,並刪除不符合要求的節點。public void SearchTreeView() { if (string.IsNullOrEmpty(Text)) return; for (int i = TreeView.Nodes.Count - 1; i >= 0; i--) { GetSearchNodes(TreeView.Nodes[i]); } } private void GetSearchNodes(TreeNode tn) { for (int i = tn.Nodes.Count - 1; i >= 0; i--) { GetSearchNodes(tn.Nodes[i]); } if (!tn.Text.Contains(Text) && tn.Nodes.Count == 0) { tn.Remove(); } } protected override void OnKeyPress(KeyPressEventArgs e) { if (e.KeyChar != (char)Keys.Space) return; ShowDropDown(); base.OnKeyPress(e); }
然後按下空格鍵的時候出發下拉事件,下拉事件中會呼叫查詢過濾方法SearchTreeView
以上就可以達到,在combox中輸入文字,按下空格鍵的時候顯示符合當前輸入的樹,從中選擇符合要求的節點顯示。