【问题标题】:Identify the clicked node in the treeview node collection在treeview节点集合中识别被点击的节点
【发布时间】:2013-09-24 15:04:52
【问题描述】:

我有一个树视图。它由“i”个父节点和“j”个子节点组成。我需要确定用户单击了哪个“i,j”节点。我可以获得如下所示的节点文本,但我需要识别 treeView 节点集合中的节点。我该怎么做?

private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
    listView1.Items.Add(e.Node.Text);
}

例如:假设我有一棵树,有 5 个父节点,每个父节点有 10 个子节点。然后我单击位于第三个父节点中的第一个子节点。我需要接收 (i,j) 对,在这种情况下是 (2,0)。

仁南

【问题讨论】:

  • e.Node 是被点击的节点。你还需要什么?
  • 您希望在节点上识别什么? ID、姓名等...?
  • 您在这里提到了ij,但是您如何将这些信息填入您的nodes
  • 我需要确定它在树中的位置。假设我有一棵树,有 5 个父节点,每个父节点有 10 个子节点。然后我单击位于第三个父节点中的第一个子节点。我需要接收 (i,j) 对,在这种情况下是 (2,0)。
  • @Renang010 看看我的解决方案,它应该是你想要的。

标签: c# winforms treeview


【解决方案1】:

您可以使用TreeNodeIndex 属性来获取它在TreeNodeCollection 中的位置。试试这个:

private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
   TreeNode parent = e.Node.Parent;
   string i = parent == null ? "No parent" : parent.Index;
   listView1.Items.Add(string.Format("{0}:{1}",i,e.Node.Index);
}

注意:我想你想在parent is null 时显示"No parent"。在那种情况下你可以自己处理(比如丢弃那种情况)。

【讨论】:

  • 只使用 TreeNode.Level 而不是验证父节点。
  • 做到了。谢谢@king-king
  • @Renang010 通过接受有用的答案表示感谢会更好:)
猜你喜欢
  • 1970-01-01
  • 2014-07-08
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多