我现在每一节点的TAG存储了一个对象
用户点删除的时候,我不光要删掉这个结点,同时要把trv1.SelectedNode.Tag这个对象删除,该怎么办?trv1.SelectedNode.Tag=NULL,没有删掉对象,怎么办呢

解决方案 »

  1.   

    MessageBox.Show(Body.Paras.Count.ToString());
                if (trv1.SelectedNode == null)
                    return;
                if (MessageBox.Show("确定删除?") == DialogResult.Cancel)
                    return;
                if (trv1.SelectedNode.Tag != null)
                {
                    trv1.SelectedNode.Tag = null;
                    trv1.SelectedNode.Remove();
                }
                MessageBox.Show(Body.Paras.Count.ToString());现在这样子SHOW出来的对象个数还是一样,没有删掉,该怎么办啊
    我想删掉结点的同时把对象一起删掉
      

  2.   

    你的每一节点的TAG存储的是什么对象?是你的Body.Paras[i] ??
    假设你的Body.Paras[i]的类型是 ClassParas;
    MessageBox.Show(Body.Paras.Count.ToString()); 
                if (trv1.SelectedNode == null) 
                    return; 
                if (MessageBox.Show("确定删除?") == DialogResult.Cancel) 
                    return; 
                if (trv1.SelectedNode.Tag != null) 
                { 
                    ClassParas t= (ClassParas)trv1.SelectedNode.Tag 
                
                    Body.Paras.Remove(t);
                    trv1.SelectedNode.Remove(); 
                } 
                MessageBox.Show(Body.Paras.Count.ToString()); 
      

  3.   

    Body.Paras是什么?是一个list嘛?
    那很容易解决啊,只要把trv1.SelectedNode.Tag转化成所要的类型然后remove就行了
    Body.Paras.Remove((ClassName)trv1.SelectedNode.Tag);
      

  4.   

    ((IList)(Body.Paras)).Remove(trv1.SelectedNode.Tag);