【.net】TreeViewそういや初めて触った@ノード検索

開発ざれごとc#,treenode,treeview,検索

そういや初めて触ったTreeViewコントロール、あまり機会がないですよね(;^ω^)

開いた時に予めノードを選択しておくっての、やりたくなりますが、これを一発でやってくれるメソッドが見当たらない・・。マジっすか

TreeNodeオブジェクトには、さまざまなプロパティがあるので、もっと効率的な方法があるかもしれないが、時間が無いので、急いで作ってみました。


再帰呼出が必須となりますので、tnsに、TreeView.TreeNodesを、strIDにキーを入れときます。表示名で検索する場合は、内部の条件を書き換えればよし。

あれば、TreeNodeで帰るので、そのまま、TreeView.SelectedNodeに渡せばOKです。

大した事やってないですけど。コピペ用としてどうぞ。

private TreeNode SearchNode(TreeNodeCollection tns,string strID)
{
    foreach (TreeNode tn in tns)
    {
        if (tn.Name.Equals(strID)) return tn;
        if (tn.Nodes != null)
        {
            TreeNode tnr = SearchNode(tn.Nodes, strID); //お子さんが居れば、再帰呼出
            if (tnr != null) return tnr;
        }
    }
    return null;
}

開発ざれごとc#,treenode,treeview,検索

Posted by nabe