0

やあ。TreeViewダブルクリックすると展開されます。そして、1つのノードのみを表示する方法があります(選択されている場合、他の開いているノードは自動的に閉じます)

void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
    {
        foreach (TreeNode node in e.Node.Parent.Nodes)
        {
            if (node != e.Node)
                treeView1.CollapseAll();

        }
    }

問題は、マウスをシングルクリックするとこの方法が機能するが、ダブルクリックするとツリーが折りたたまれることです。treeView1_BeforeSelectダブルクリックで実行する必要があります。

thnx

4

1 に答える 1

0

これはBeforeSelect、ダブルクリックによって引き起こされるデフォルトの動作の前に が実行されていることが原因である可能性があります。したがって、あなたの望む結果は一掃されます。ダブルクリック イベントを自分で処理し、同じことを行います。

public void treeView1_NodeMouseDoubleClick(Object sender, TreeNodeMouseClickEventArgs e)
{
    foreach (TreeNode node in e.Node.Parent.Nodes)
    {
        if (node != e.Node)
            treeView1.CollapseAll();
    }

    e.Node.Expand();
}
于 2013-09-26T11:04:11.773 に答える