我向树视图动态添加了一个上下文菜单(添加、取消)。现在我想在单击上下文菜单项单击时显示选定的树节点值。
我怎样才能做到这一点?
我假设您想知道打开上下文菜单时右键单击了哪个节点?
要确定这一点,您可以处理树视图上的 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,如果用户右键单击节点外的树视图,它将为空。
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;