0

私にはいくつかの子供がいるツリービューがあり、それらの多くには祖先があります。ツリービューの横にデータグリッドビューもあります。ツリービューで選択したノードに基づいて、Datagridviewでデータをバインドします。

私はノード値を取得するために使用treeView1.SelectedNodeします私の問題は、この式が以前に選択されたノードを与えることです。

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    node = e.node;
}

これにより、正しいノード(選択されたノード)が得られます。しかし

node = treeview1.selectednode前に選択したノードを指定します。クリックイベント(_nodemouseclick)の外で選択したノードを取得したい。

どうすれば入手できますか。ノードをグローバル変数に保存して使用したくありません。

私の質問を明確に説明できることを願っています。

期待してくれてありがとう。

4

2 に答える 2

1

これは、selectedNodeが変更される前にMouseClickイベントが発生するためです。代わりにSelectedItemChangedイベントを使用してみてください

    private void TreeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
    {

    }
于 2012-09-19T11:30:35.100 に答える
1
    TreeNode yourGlobalTreeNode;
    void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {
        yourGlobalTreeNode = e.Node;
        otherFunction();
        anOtherFunction(e.Node);
    }
    void otherFunction()
    {
        MessageBox.Show(yourGlobalTreeNode.Text);
    }
    void anOtherFunction(TreeNode tn)
    {
        MessageBox.Show(tn.Text);
    }

Other Function means you can use this tree_node anywhere using above two methods.

于 2012-09-19T15:54:50.633 に答える