2009-08-04 16 views
-1

ツリービューにコンテキストメニュー(追加、キャンセル)を動的に追加しました。ここで、コンテキストメニュー項目のクリックをクリックすると、選択したツリーノードの値を表示します。c#winformsコンテキストメニューイベントの問題

どうすればいいですか?

+4

何が問題ですか? –

+0

ya問題を解決してください申し訳ありません – Nagu

答えて

1

私はあなたが単にtreenodeのテキストを知る必要があると仮定します。このコードは仕事、私はあなたがコンテキストメニューを開いたときに右クリックされたノードを知りたいと仮定し

string treeNodeText = this.treeView1.SelectedNode.Text; 
2

すればよいですか?

これを確認するには、ツリービューでmousedownイベントを処理し、右クリックしたノードがコンテキストメニューが表示される前に選択されていることを確認します。 ToolStripMenuItemのクリックハンドラで

private void treeView1_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Right) 
     { 
      var node = treeView1.HitTest(e.X, e.Y).Node; 
      treeView1.SelectedNode = node; 
     } 
    } 

あなたがtreeView1.SelectedNodeを確認することができ、ユーザが右ノード外のツリービューをクリックした場合、それはnullになります。

private void addToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     if (treeView1.SelectedNode != null) MessageBox.Show("Node selected: " + treeView1.SelectedNode.Text); 
    }