如何将.NET TreeView节点设置为在单击文本时展开-C#?

如何将.NET TreeView节点设置为在单击文本时展开-C#?,c#,asp.net,treeview,nodes,C#,Asp.net,Treeview,Nodes,我在母版页中有一个树状视图,在单击+/-时在展开和折叠节点之间切换节点,在当前节点展开时折叠所有其他节点。我试图让它在单击节点的文本时遵循相同的行为。单击节点文本时,它会折叠所有其他节点并转到该节点链接到的页面,但不会展开当前节点。我尝试过许多其他类似问题的解决方案,但都没有奏效。这是我为TreeView事件编写的C#代码 protected void MainMenu_SelectedNodeChanged(object sender, EventArgs e) { MainMenu.

我在母版页中有一个树状视图,在单击+/-时在展开和折叠节点之间切换节点,在当前节点展开时折叠所有其他节点。我试图让它在单击节点的文本时遵循相同的行为。单击节点文本时,它会折叠所有其他节点并转到该节点链接到的页面,但不会展开当前节点。我尝试过许多其他类似问题的解决方案,但都没有奏效。这是我为TreeView事件编写的C#代码

protected void MainMenu_SelectedNodeChanged(object sender, EventArgs e)
{
    MainMenu.CollapseAll();
    TreeNode node = MainMenu.SelectedNode;
    node.Expand();
    while (node.Parent != null)
    {
        node = node.Parent;
        node.Expand();
    }
}

protected void MainMenu_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{
    if (e.Node.Parent == null) return;
    string strNodeValue = e.Node.Value;
    foreach (TreeNode node in e.Node.Parent.ChildNodes)
    {
        if (node.Value != strNodeValue)
            node.CollapseAll();
    }
}


protected void MainMenu_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
{
    e.Node.SelectAction = TreeNodeSelectAction.SelectExpand;
}

我感谢所有的想法和建议

如果有帮助,请告诉我。谢谢您的回复。我认为这是针对WindowsForm而不是aspx页面的。我曾尝试在事件前后使用NodeMouseClick、MouseClick使其展开,但没有成功:-/