首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#中要删除treeview中的结点,同时把对应的listview的内容删掉时,请教小弟我的代码错哪了

2012-04-24 
C#中要删除treeview中的结点,同时把对应的listview的内容删掉时,请问我的代码哪里错了private void 删除To

C#中要删除treeview中的结点,同时把对应的listview的内容删掉时,请问我的代码哪里错了
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
  {

  if (this.treeView1.SelectedNode == null)
  MessageBox.Show("请输入你要删除的节点", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  else
  {
  if (this.treeView1.SelectedNode.Nodes.Count == 0)
  { this.treeView1.SelectedNode.Remove();
  if (this.treeView1.SelectedNode.Text.ToString() == listView1.Items["姓名"].ToString())
  {
  listView1.Items.Remove(this.listView1.Items["姓名"]);
  }
  }
  else
  MessageBox.Show("请先删除的子节点", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  this.treeView1.SelectedNode = null;

  }
  }

[解决办法]
就这几句,你单步看逻辑不就知道了.
这句 listView1.Items.Remove(this.listView1.Items["姓名"]); 估计没达到你要的效果.

[解决办法]
this.treeView1.SelectedNode.Remove();你先把它删掉了,然后后面又访问SelectedNode,那能不错吗,已经被删了,SelectedNode已经不是之前那个了,你应该把删除SelectedNode放到最后
[解决办法]
this.treeView1.SelectedNode.Remove();//这个移早了
if(this.treeView1.SelectedNode.Text...)//这里获取不到,SelectedNode被上一步移除
[解决办法]
this.treeView1.SelectedNode.Nodes.Count == 0这句话不是判断的是有没有子节点的吗,如果没有将他移除,如果有的话,限制一下
,所以你的逻辑顺序写反了啊。

热点排行