【发布时间】:2009-10-14 08:49:23
【问题描述】:
我正在尝试在 TreeNode 的文本附近添加一个自定义图标,以便项目可以显示“选中/未选中”状态。我不想为此使用复选框。
有什么想法吗? 谢谢
【问题讨论】:
-
还有什么 GUI 框架/工具包? Winforms 与 WPF 非常不同,尽管两者都可能使用 C#。
我正在尝试在 TreeNode 的文本附近添加一个自定义图标,以便项目可以显示“选中/未选中”状态。我不想为此使用复选框。
有什么想法吗? 谢谢
【问题讨论】:
假设您使用的是 .net 和 Windows 窗体。
必须将 TreeView 的 DrawMode 属性设置为 TreeViewDrawMode.OwnerDrawAll。完成此操作后,每次绘制树节点时都会触发 treeview 的 DrawNode 事件。处理该事件并手动绘制您的项目。
您将获得 DrawTreeNodeEventArgs 作为事件参数。它的 State 属性将告诉您必须绘制的树项的哪个状态。 e.Bounds 将帮助您确定边界,您可以使用 e.Graphics 进行绘图。您可以在此处找到更多详细信息:
http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.drawnode.aspx
但要准备好投入几个小时。
【讨论】: