C# 从ContextMenuStrip中选择的选项是哪个对象

C# 从ContextMenuStrip中选择的选项是哪个对象,c#,contextmenustrip,C#,Contextmenustrip,我制作windows窗体应用程序。我在表单TreeView上添加了几个节点,并添加了ContextMenuStrip var menu = new ContextMenuStrip(); menu.Items.Add("Some text", new Bitmap(1, 1), new EventHandler(function_name)); var treeView = new TreeView(..); treeView.ContextMenuStri

我制作windows窗体应用程序。我在表单TreeView上添加了几个节点,并添加了ContextMenuStrip

  var menu = new ContextMenuStrip();
  menu.Items.Add("Some text", new Bitmap(1, 1), new EventHandler(function_name));

  var treeView = new TreeView(..);
  treeView.ContextMenuStrip = menu;      

  treeView.Nodes.Add(new TreeNode()
  {
         ...
         Tag = someObject
  });
我的问题是如何签入单击树节点并从ContextMenuStrip中选择选项的函数
函数\函数名

编辑 函数名合成

 public void pokaz_DoubleClick(object sender, EventArgs e)
 {
 }

函数名
方法的签名是什么

通常,您可以检查sender参数的内容,但可能是
TreeView
而不是
TreeNode
,如果是这样,您可以检查
e
参数的属性


另一种方法是,每次按下鼠标时,确保在树视图中选择鼠标下的节点,这样当执行
函数名时,节点将进入
树视图。SelectedNode

您可以处理TreeNodeDemouseClick事件。在TreeNodeMouseClickEventHandler中,您可以访问
TreeNodeMouseClickEventArgs
参数。此参数包含许多属性,可用于检查在哪个节点上单击了哪个鼠标按钮。比如说

private TreeNode rightClickeNode;

void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        rightClickedNode = e.Node;
    }
}

然后,您可以从
函数名访问rightClickedNode

您可以在显示上下文菜单之前选择该节点,然后只需检查
SelectedNode
属性。大概是这样的:

private void treeView_MouseDown(object sender, MouseEventArgs e)
{
    //See what node is at the location that was just clicked
    var clickedNode = treeView.GetNodeAt(e.Location);

    //Make that node the selected node
    treeView.SelectedNode = clickedNode;
}

private void function_name(object sender, EventArgs e)
{
    var currentNode = treeView.SelectedNode;

    //Do something with currentNode
}

如何在事件鼠标向下时选择节点?如果我能做到这一点,那么在函数_name中,我将检查选择了哪个节点,并在OnMouseDown事件处理程序中检查e参数的内容。