在我的程序中有一个用户权限,当用户登录到系统时,我要将这些权限从我在SQL数据库中保存的用户权限带到static
变量中,我想限制用户不要单击允许的TreeNodes。因此,它正在从static
变量值进行检查。在表单加载中,我写道:
if (bl_Static.AddReq != true)
{
treeView1.Nodes.RemoveAt(6);
}
但是它不起作用。您能帮我吗?
我认为您正在调用错误的父节点的RemoveAt
方法,因此目标节点如果不在TreeNodeCollection的treeView1.Nodes
中,则不会被删除。
要解决此问题,请使用TreeNodeCollection.Find方法通过其唯一键/名称找到目标节点,并检查调用正确集合的Remove
方法是根节点还是子节点:
if (!bl_Static.AddReq)
{
var tarNode = treeView1.Nodes.Find("GetTheNameFromTheDesigner", true).FirstOrDefault();
if(tarNode != null)
{
if (tarNode.Parent != null)
tarNode.Parent.Nodes.Remove(tarNode);
else
treeView1.Nodes.Remove(tarNode);
}
}