【发布时间】:2015-05-02 11:40:53
【问题描述】:
我正在使用 VS 2005 (.NET 2.0) C# 处理具有 XML 解析到 TreeView 功能的 Winform。
我打算启用树视图列表的复选框。实际上,我已经启用了它们。我在寻找可能有帮助的 TreeView 和 TreeNode 的一些属性时发现了这段代码here。我找到了 TreeNode.Checked 属性和 TreeView.CheckBoxes 属性。
public void HighlightCheckedNodes()
{
int countIndex = 0;
string selectedNode = "Selected customer nodes are : ";
foreach (TreeNode myNode in myTreeView.Nodes[0].Nodes)
{
// Check whether the tree node is checked.
if(myNode.Checked)
{
// Set the node's backColor.
myNode.BackColor = Color.Yellow;
selectedNode += myNode.Text+" ";
countIndex++;
}
else
myNode.BackColor = Color.White;
}
if(countIndex > 0)
MessageBox.Show(selectedNode);
else
MessageBox.Show("No nodes are selected");
}
所以我在我的测试项目上尝试了它,它只在父节点上有效,在子节点上无效。我想要做和发生的是我还必须确定子节点的检查状态。我正在开发一个需要选择单个到多个子节点并在检查后执行外部程序的项目。对于子节点,这可能吗?或者有没有其他选择。
如果我有任何不清楚的地方,请告诉我。提前谢谢你。
【问题讨论】:
-
使用
foreach (TreeNode myNode in myTreeView.Nodes[0].Nodes)你只需要顶级节点。如果您需要下一个级别,请在每次迭代中使用 myNode.Nodes -
这个对节点的层级有限制吗?
标签: c# winforms checkbox treeview