TreeComboBox控件范例

简介: 在我印象中有很多各种各样的自定义控件(例如TreeListView,Office侧边控件,CRM侧边控件,Leds等等)。它们具有的共同点是具有一些迷人特性,并且在标准控件库中不提供它们。
        在我印象中有很多各种各样的自定义控件(例如TreeListView,Office侧边控件,CRM侧边控件,Leds等等)。它们具有的共同点是具有一些迷人特性,并且在标准控件库中不提供它们。我想起一定有一种控件是TreeComboBox,或者叫做TreeSelectControl,是否叫这个名字我不确定,特点是类似ComboBox,但下拉时显示的是树状列表。我到其他网站上去找,但是并不是很容易找到。又想起我在以前的项目中曾经做过这种选择控件,想象中这个任务不是非常的难,于是今天我又把它拿出来另外制作一个。我只需要一个TextBox,一个Button,一个TreeView就可以组合成这个控件了。效果如下图:
      
      在TreeView中可以用TreeView标准操作,左右方向键展开和折叠节点,用上下选择节点。双击或者按回车键用于确定选中节点。 
      这里面的代码也是很基本的,不涉及过高的技巧性,唯一的技巧在于,下拉窗口的位置,要根据控件的屏幕位置决定,首先尝试在下面显示,如果空间不够则在上面显示。不过问题是,现在我只是贪图容易把treeview加到容器上,这要求容器必须足够大,否则下拉的treeview就会部分被遮挡(而标准ComboBox的下拉窗口则不会被遮挡)。所以如果解决该问题,需要把下拉控件“贴”到“屏幕窗口”上,并且带到Z次序最顶层,类似一些普通桌面程序。
      另外由于不想把内部控件直接公开给外部,所以牵涉到很多属性和方法的封装到外部,这就会引入很大的烦琐工作量,同样为了简单,仅仅公开了最必要的一些属性和事件。

      源代码下载链接:
      http://files.cnblogs.com/hoodlum1980/TreeComboBox.rar

目录
相关文章
|
关系型数据库 MySQL C#
C# winform 一个窗体需要调用自定义用户控件的控件名称
给用户控件ucQRCode增加属性: //二维码图片 private PictureBox _pictureBoxFSHLQrCode; public PictureBox PictureBoxFSHLQrCode {   get { return _pictureBoxFSHLQrCode; }   set { this.pictureBoxFSHLQrCode = value; } } 在Form1窗体直接调用即可: ucQRCode uQRCode=new ucQRCode(); ucQRCode.PictureBoxFSHLQrCode.属性= 要复制或传给用户控件上的控件的值
71 0
|
7月前
LabVIEW创建自定义输入控件、显示控件和自定义类型2
LabVIEW创建自定义输入控件、显示控件和自定义类型2
437 2
|
7月前
LabVIEW创建自定义输入控件、显示控件和自定义类型1
LabVIEW创建自定义输入控件、显示控件和自定义类型1
121 1
|
C#
WPF整理-为控件添加自定义附加属性
原文:WPF整理-为控件添加自定义附加属性 附加属性,大家都不陌生,最常见的是Canvas.Left/Canvas.Top,类似的也有Grid.Row/Grid.Column等附加属性。举个最常见的例子 需要说明的是并不是所有的附加属性都是元素放进去后才会有附加效果,上面的例子只是刚好是这种错觉的巧合情况,Grid.Row也属于这种巧合。
2122 0
WPF整理-为控件添加自定义附加属性
gtk窗口和标签控件范例代码
gtk窗口和标签控件范例代码
108 0
x11/xwindow GUI窗口代码范例
x11/xwindow GUI窗口代码范例
182 0
语法着色控件使用典型范例
语法着色控件使用典型范例
84 0
|
前端开发 C# 数据格式
WPF中任意Object的XAML代码格式化输出
原文:WPF中任意Object的XAML代码格式化输出 有时候,我们需要将WPF中的控件自身的XAML代码输出成文本,那么,我们可以使用System.Windows.Markup.XamlWriter.Save()方法来完成此任务。
916 0
|
JavaScript .NET 开发框架