65.9K
CodeProject 正在变化。 阅读更多。
Home

ComboBoxTree

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.32/5 (20投票s)

2004年1月28日

2分钟阅读

viewsIcon

158325

downloadIcon

3677

一个下拉式树形控件,类似于组合框。

Sample Image

引言

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
    • 工具箱类别的小更改。
© . All rights reserved.