ComboBoxTree






4.32/5 (20投票s)
2004年1月28日
2分钟阅读

158325

3677
一个下拉式树形控件,类似于组合框。
引言
ComboBoxTree
控件扩展了 Gevik Babakhani 的 DropDown Treeview 控件。 几乎 85% 的代码已经被重写。 这个更新后的控件提供了以下增强功能:
- 树形控件可以调整大小,超过其父控件和窗体的宽度。
- 调整大小手柄功能与标准的 Windows 调整大小手柄更一致。
- 当它是根节点时,节点选择将填充该框,
SelectionSeparator
属性分配分隔符(例如,SelectionSeperator
是一个句点 '.' 将生成类似:Node0.subnode1.subnode2.rootnode 的内容)。 - 更好的设计时支持,包括标准的树形视图 WYSIWYG 编辑器。
- 选定的节点框是可编辑的,并且可以作为属性访问 - 但是,手动设置此值时没有验证。
- 简化,通过使用区域和更少的调用方法。
请随时发表评论、提问或批评。 这是我的第一个 Windows 控件,所以感谢您的反馈。
背景
我需要一个用于需要多个树形视图但窗体空间非常有限的项目。 当我发现 Gevik 的 DropDown TreeView 时,我很高兴找到了我正在寻找的东西,但很快就遇到了需要关注的问题,并花费了数小时的代码更新。
最初,我并不打算重新分发更新后的控件,但我想通过这种方式来表达感谢。 感谢 The Code Project 和原始作者 - 感谢 Gevik Babakhani ;-)
要使用该控件,只需将 ComboBoxTree.dll 文件添加到您的工具箱中,然后将该控件拖放到您的窗体上。 该控件应该提供您所需的大部分树形视图功能。
关注点
我可以通过将树形视图添加到其自己的无边框窗体来解决“超出父级调整大小”问题。 我的下一个问题是如何使调整大小手柄正常工作。 我可以通过计算鼠标在调整大小手柄内的偏移量,以及鼠标的绝对位置和包含树形视图的窗体的位置来实现这一点。 我遇到的最后一个大问题是当滚动条出现时调整大小手柄的问题。 禁用滚动条不是解决方案,所以我唯一的选择是在底部和右侧添加一个边距空间。 有点不同,但绝对有效!
历史
- 01/26/04 版本 1.0 提交。
- 02/02/04 版本 1.2 提交,更改包括
- Text 属性现在被重写。
- 现在可以使用
AbsoluteChildrenSelectableOnly
属性选项,用户现在只能选择最终节点或所有节点。 - 现在可以使用 Public
ValidateText
方法来验证手动输入的文本。 SelectionSeparator
现在称为BranchSeparater
。- 工具箱类别的小更改。