检查树视图节点是否不可见

时间:2014-08-18 08:18:06

标签: c# treeview

我对this post有疑问。

我有一个从数据库填充的树视图。我隐藏了未使用此代码检查的复选框:

for (int i = 0; i < _adminTv.Nodes.Count; i++)
{
    HideChecks(_adminTv.Nodes[i]);
}

private void HideChecks(TreeNode tn)
{
    if (!tn.Checked)
    {
        tn.SetIsCheckBoxVisible(false);
    }
    for (int i = 0; i < tn.Nodes.Count; i++)
    {
        HideChecks(tn.Nodes[i]);
    }
}

我想用新的数据库查询重新填充此树,并保持隐形复选框不可见。此外,我想取消选中所有已检查的节点。所以我使用了这段代码:

for (int i = 0; i < _adminTv.Nodes.Count; i++)
{
    UncheckTreeView(_adminTv.Nodes[i]);
}

private void UncheckTreeView(TreeNode tn)
{
    if (tn.Checked)
    {
        tn.Checked = false;
    }

    if (!tn.IsCheckBoxVisible())
    {
        tn.SetIsCheckBoxVisible(false);
    }

    for (int i = 0; i < tn.Nodes.Count; i++)
    {
        UncheckTreeView(tn.Nodes[i]);
    }
}

但是,虽然在调用此方法之前,隐形节点确实是不可见的(我测试过它),但在UncheckTreeView方法中,第二个检查节点是否可见的If总是假的。

任何解决方案?

0 个答案:

没有答案