0

我有以下鼠标点击事件:

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);

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

4

3 回答 3

2

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

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

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();
于 2018-06-19T11:02:27.023 回答
0

您必须在第二种方法中调用该方法。就像是:

public void SecondMethod(object sender, Args e){
    ni_MouseClick(sender, e);
}
于 2018-06-19T10:51:12.983 回答
0

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

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

但是您需要根据 Ash 的回答来思考和实施,他有更好的解决方案。

于 2018-06-19T11:54:26.733 回答