TreeComboBox控件范例


本文轉載:http://www.cnblogs.com/hoodlum1980/archive/2008/01/30/1058140.html

 在我印象中有很多各種各樣的自定義控件(例如TreeListView,Office側邊控件,CRM側邊控件,Leds等等)。它們具有的共同點是具有一些迷人特性,並且在標准控件庫中不提供它們。我想起一定有一種控件是TreeComboBox,或者叫做TreeSelectControl,是否叫這個名字我不確定,特點是類似ComboBox,但下拉時顯示的是樹狀列表。我到其他網站上去找,但是並不是很容易找到。又想起我在以前的項目中曾經做過這種選擇控件,想象中這個任務不是非常的難,於是今天我又把它拿出來另外制作一個。我只需要一個TextBox,一個Button,一個TreeView就可以組合成這個控件了。效果如下圖:
      
      在TreeView中可以用TreeView標准操作,左右方向鍵展開和折疊節點,用上下選擇節點。雙擊或者按回車鍵用於確定選中節點。 
      這里面的代碼也是很基本的,不涉及過高的技巧性,唯一的技巧在於,下拉窗口的位置,要根據控件的屏幕位置決定,首先嘗試在下面顯示,如果空間不夠則在上面顯示。不過問題是,現在我只是貪圖容易把treeview加到容器上,這要求容器必須足夠大,否則下拉的treeview就會部分被遮擋(而標准ComboBox的下拉窗口則不會被遮擋)。所以如果解決該問題,需要把下拉控件“貼”到“屏幕窗口”上,並且帶到Z次序最頂層,類似一些普通桌面程序。
      另外由於不想把內部控件直接公開給外部,所以牽涉到很多屬性和方法的封裝到外部,這就會引入很大的煩瑣工作量,同樣為了簡單,僅僅公開了最必要的一些屬性和事件。

      源代碼下載鏈接:
      http://files.cnblogs.com/hoodlum1980/TreeComboBox.rar

 

     https://github.com/ryanm101/filtertreeview

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM