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
TreeComboBox控件范例的更多相关文章
- [.ashx檔?泛型处理程序?]基础入门#5....ADO.NET 与 将DB里面的二进制图片还原 (范例下载 & 大型控件的ImageField)
[.ashx檔?泛型处理程序?]基础入门#5....ADO.NET 与 将DB里面的二进制图片还原 (范例下载 & 大型控件的ImageField) http://www.dotblogs.c ...
- FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」
原文出處 http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819. ...
- DevExpress2011控件教程)编辑控件(comboBox,AspxCheckBox) 范例1
DevExpress2011控件教程)编辑控件(comboBox,AspxCheckBox) 范例1 AspxCheckBox 是一个检查编辑控件去展示特殊条件是否关闭或者打开.它一般会展示Yes/N ...
- Android自定义用户控件简单范例(二)
对于完全由后台定制的控件,并不是很方便其他人的使用,因为我们常常需要看到控件放到xml界面上的效果,并根据效果进行布局的调整,这就需要一个更加标准的控件制作流程: 我们的自定义控件和其他的控件一样,应 ...
- Android自定义用户控件简单范例(一)
一款优秀的移动应用需要具有自己独特统一的风格,通常情况下UI设计师会根据产品需求和使用人群的特点,设计整体的风格,界面的元素和控件的互效果.而原生态的Android控件为开发人员提供的是最基本的积木元 ...
- VB中PictureBox控件使用教程
PictureBox对象可以说是任何对象的原始型态,它可以加载图片.显示文字.画图外,它还能与Frame对象一样,在自己本身里头加载其它的对象而自成一个小群组,用PictureBox可以仿真出任何对象 ...
- ExtJs控件属性配置详细
序言: 1.本文摘自网络,看控件命名像是4.0以前的版本,但控件属性配置仍然可以借鉴(不足之处,以后项目用到时再续完善). Ext.form.TimeField: 配置项: ...
- Cesium应用篇:3控件(2)BaseLayerPicker
所有范例均在github中搜索:ExamplesforCesium BaseLayerPicker控件非常简单,似乎没什么可说的,确实非常的简单,但作为一个底图选择控件,可以说是最基本的一个控件. C ...
- Cesium应用篇:3控件(3)SelectionIndicator& InfoBox
假设这样一个场景,用户在Cesium球上加载了一个GeoJson文件(DataSource),里面是全美国所有州的Geometry信息(Entity),叠加到球面后,你自然会有一种冲动,点击某一个州, ...
随机推荐
- node初步一:HTTP请求
一. 创建pathtest.js文件 var http= require('http' ); var url= require('url' ); function start (){ function ...
- pgsql与mysql 下 varchar类型的数字文本的排序 区别
两者都有cast函数,但使用方法完全不同. 1.在mysql中,cast( value as type) 将value的数据类型转换成type类型,其type可以为 二进制,同带binary前缀的效果 ...
- java执行机制
java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码 ...
- Windows安装Subversion
1.安装Setup-Subversion-1.8.16.msi下载地址:https://sourceforge.net/projects/win32svn/ 2.将svn添加到Windows系统服务s ...
- QFTP走了以后QNetworkAccessManager出现了
QNetworkAccessManager Class Header: #include <QNetworkAccessManager>qmake: QT += networ ...
- 64位Win7下安装并配置Python3的深度学习库:Theano
注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) 这两天在安装Python的深度学习库:Theano.尝试了好多遍,CMake.MinGW ...
- hadoop的一些重要配置参数
hadoop集群管理内存设置 Mapreduce内存使用设置 hadoop job重要性能参数
- c# 测试
string input = "//a/@href "; int index = input.IndexOf("/@"); String attr = inpu ...
- [BZOJ 3218] A + B Problem 【可持久化线段树 + 网络流】
题目连接:BZOJ - 3218 题目分析 题目要求将 n 个点染成黑色或白色,那么我们可以转化为一个最小割模型. 我们规定一个点 i 最后属于 S 集表示染成黑色,属于 T 集表示染成白色,那么对于 ...
- Google将向IETF标准提交QUIC协议提案
Google近期宣布,他们将向IETF提交实验性传输层网络协议QUIC的提案.此外,Google已经给出了QUIC协议优化页面加载时间的第一手数据. 自从2013年引入QUIC以来,Google一直在 ...