Как узнать, выбран ли выбранный node дочерний элемент node или родительский node в элементе управления TreeView
?
Как определить, выбран ли выбранный node дочерний или родительский node в TreeView?
Ответ 1
Именно то, как вы реализуете такую проверку, зависит от того, как вы определяете "дочерние" и "родительские" узлы. Но каждый объект TreeNode
подвергается двум свойствам, которые предоставляют важную информацию:
-
if (selectedNode.Nodes.Count == 0) { MessageBox.Show("The node does not have any children."); } else { MessageBox.Show("The node has children, so it must be a parent."); }
-
Чтобы получить дополнительную информацию, вы также можете изучить значение свойства
Parent
. Если это значениеnull
, то node находится на корневом уровнеTreeView
(у него нет родителя):if (selectedNode.Parent == null) { MessageBox.Show("The node does not have a parent."); } else { MessageBox.Show("The node has a parent, so it must be a child."); }
Ответ 2
Для этого вы можете использовать свойство TreeNode.Parent
.
Если его значение является null
-reference, node находится на корневом уровне.
TreeView treeView = ...
var selectedNode = treeView.SelectedNode;
if(selectedNode ! = null)
{
if(selectedNode.Parent == null)
{
// Root-level node
}
else
{
// Child node
}
}
else
{
// A node hasn't been selected.
}
Ответ 3
Попробуйте это
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
Label1.Text = "";
if(e.Node.Parent!= null &&
e.Node.Parent.GetType() == typeof(TreeNode) )
{
Label1.Text = "Parent: " + e.Node.Parent.Text + "\n"
+ "Index Position: " + e.Node.Parent.Index.ToString();
}
else
{
Label1.Text = "This is parent node.";
}
}
Ответ 4
treeview.SelectedNode == null
лучше всего выбрать.
Ответ 5
Для root node является родительский TreeView.. можно проверить, сравниваем ли типы →
if (currentNode.Parent.GetType() == typeof(TreeView))
{
// root node
}