我正在使用asp.net中的应用程序。我使用树视图来显示Category.After将已检查的节点值存储到数据库中后,我想取消选中所有树视图节点。为此,我有以下代码:
foreach (TreeNode node in TreeView1.CheckedNodes)
{
node.Checked=false;
}
但显示错误: 收集被修改;枚举操作可能无法执行
请帮帮我。 谢谢!
答案 0 :(得分:1)
//foreach (TreeNode node in TreeView1.CheckedNodes)
for(int i=0; i<TreeView1.CheckedNodes.Count; i++)
{
TreeNode node = TreeView1.CheckedNodes[i];
node.Checked = false;
}
答案 1 :(得分:1)
foreach 只读,您无法将收藏更改为foreach。
你必须使用 for loop :
for (int i = 0; i < TreeView1.Nodes.Count; i++)
{
TreeView1.Nodes[i].Checked = false;
}
答案 2 :(得分:1)
每次传递都会重新评估CheckedNodes.Count变量。所以只需清除0索引处的复选框即可。
int tvCT;
tvCT = TreeView1.CheckedNodes.Count;
if (tvCT > 0)
{
for (int i = 0; i < tvCT; i++)
{
TreeNode node = TreeView1.CheckedNodes[0];
node.Checked = false;
}
}
答案 3 :(得分:1)
while (TreeView1.CheckedNodes.Count > 0)
{
TreeView1.CheckedNodes[0].Checked = false;
}
这是一个非常简单的块,对我有用。
答案 4 :(得分:0)
foreach (TreeNode node in TreeView1.Nodes)
{
node.Checked = false;
foreach (TreeNode item1 in node.ChildNodes)
{
item1.Checked = false;
foreach (TreeNode item2 in item1.ChildNodes)
{
item2.Checked = false;
}
}
}
检查它.....!这是工作