Winforms TreeView中的TreeNode与Visual C中的属性++;-如何实现? 我在VisualC++解决方案中使用TeeVIEW来表示和更改XML内容。我使用Visual Studio 2010进行此项目(.NET/Windows窗体)。我的一些树节点必须具有属性。不幸的是,VisualStudio中的树节点似乎没有属性

Winforms TreeView中的TreeNode与Visual C中的属性++;-如何实现? 我在VisualC++解决方案中使用TeeVIEW来表示和更改XML内容。我使用Visual Studio 2010进行此项目(.NET/Windows窗体)。我的一些树节点必须具有属性。不幸的是,VisualStudio中的树节点似乎没有属性,winforms,visual-studio-2010,visual-c++,treeview,treenode,Winforms,Visual Studio 2010,Visual C++,Treeview,Treenode,我现在想通过向树节点添加不可见的子节点来解决这个问题,树节点应该具有属性,并将属性值保存在这些不可见的子节点中。同样,VisualStudio中的TreeNodes不提供任何使它们不可见的属性。我现在的想法是简单地派生一个自定义TreeNode类并添加一个布尔属性,不管TreeNode是否应该隐藏。如果属性为true,我“只是”必须覆盖树视图的方法,该方法在添加树节点时(或进入视图时)绘制树节点。不幸的是,这就是我被困的地方。我必须重写哪个函数才能完成此操作 顺便问一下:我必须添加可见性属性吗?

我现在想通过向树节点添加不可见的子节点来解决这个问题,树节点应该具有属性,并将属性值保存在这些不可见的子节点中。同样,VisualStudio中的TreeNodes不提供任何使它们不可见的属性。我现在的想法是简单地派生一个自定义TreeNode类并添加一个布尔属性,不管TreeNode是否应该隐藏。如果属性为true,我“只是”必须覆盖树视图的方法,该方法在添加树节点时(或进入视图时)绘制树节点。不幸的是,这就是我被困的地方。我必须重写哪个函数才能完成此操作

顺便问一下:我必须添加可见性属性吗?实际上,只要将节点强制转换为自定义TreeNode(与TreeNode完全相同),然后仅在类型为TreeNode时绘制它,在类型为CustomTreeNode时隐藏它就足够了。对吧?


谢谢你的帮助

TreeView没有这样的选项,即使使用自定义绘图也不行。这样做很简单,通过将节点从树中移除使其不可见。确保将数据实现与可视化分开,这样就不会出现问题。我知道,这就是为什么我想为TreeNode和TreeView使用自定义类的原因。为了简化数据的处理和可视化,我希望能够使用TreeNode,而不仅仅是在TreeView中显示,而是在它的TreeNode集合中列出。到目前为止,我一直试图使用本页中的代码:我想使用这里提到的WndProc()钩子来防止绘制一个树节点,如果它是一个隐藏的树节点。但是我不确定这是否是正确的方式,直到现在我才发现这段代码可以在树视图中显示节点后在树视图中额外绘制一些东西。但我想阻止树节点被显示。