ツリー ビューにコンテキスト メニュー (追加、キャンセル) を動的に追加しました。コンテキストメニュー項目をクリックしたときに、選択したツリーノードの値を表示したいと思います。
どうやってやるの?
ツリー ビューにコンテキスト メニュー (追加、キャンセル) を動的に追加しました。コンテキストメニュー項目をクリックしたときに、選択したツリーノードの値を表示したいと思います。
どうやってやるの?
コンテキストメニューを開いたときにどのノードが右クリックされたか知りたいと思いますか?
これを判断するには、ツリービューでmousedownイベントを処理し、コンテキストメニューが表示される前に右クリックしたノードが選択されていることを確認します。
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;
}
}
ToolStripMenuItemのクリックハンドラーでtreeView1.SelectedNodeを確認できます。ユーザーがノードの外側のツリービューを右クリックすると、nullになります。
private void addToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode != null) MessageBox.Show("Node selected: " + treeView1.SelectedNode.Text);
}
ツリーノードのテキストを知っている必要があると思いますか?このコードは仕事をする必要があります
string treeNodeText = this.treeView1.SelectedNode.Text;