从代码发送鼠标左键单击处理程序?

Send left mouse to click handler from code?

我有以下鼠标点击事件:

public static void ni_MouseClick(object sender, MouseEventArgs e)
{
    // Handle mouse button clicks.
    if (e.Button == MouseButtons.Left)
    {
        //do stuff
    }
}

这通常是通过左键单击系统托盘中的图标来触发的,

我也想从另一个事件中调用同一个事件,我试过类似的方法:

myproject.ProcessIcon.ni_MouseClick(sender, mousebutton.left);

但显然我不确定如何正确发送左键对象(如果可能的话)。

您必须在第二个方法中调用该方法。类似于:

public void SecondMethod(object sender, Args e){
    ni_MouseClick(sender, e);
}

任何可以由用户交互(点击)触发的操作,显然也可以由其他代码触发。

将任何应该多次执行的功能放在一个单独的方法中,并从代码中的不同位置调用该方法:

public static void DoStuff()
{
}

private void ni_MouseClick(object sender, MouseEventArgs e)
{
    // Handle mouse button clicks.
    if (e.Button == MouseButtons.Left)
    {
        DoStuff();
    }
}

myproject.ProcessIcon.DoStuff();

只需更改您的代码如下:-

ni_MouseClick(sender, new MouseEventArgs(MouseButtons.Left, 0, 0, 0, 0);

但是你需要按照 Ash 的回答思考和实施他有更好的解决方案。