Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从代码中发送鼠标左键单击处理程序?_C#_Wpf_Mouseevent - Fatal编程技术网

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

C# 从代码中发送鼠标左键单击处理程序?,c#,wpf,mouseevent,C#,Wpf,Mouseevent,我有以下鼠标单击事件: public static void ni_MouseClick(object sender, MouseEventArgs e) { // Handle mouse button clicks. if (e.Button == MouseButtons.Left) { //do stuff } } 这通常通过左键单击systray中的图标来触发 我还想从另一个事件中调用同一事件,我尝试了以下方法: myproject.P

我有以下鼠标单击事件:

public static void ni_MouseClick(object sender, MouseEventArgs e)
{
    // Handle mouse button clicks.
    if (e.Button == MouseButtons.Left)
    {
        //do stuff
    }
}
这通常通过左键单击systray中的图标来触发

我还想从另一个事件中调用同一事件,我尝试了以下方法:

myproject.ProcessIcon.ni_MouseClick(sender, mousebutton.left);
public void SecondMethod(object sender, Args e){
    ni_MouseClick(sender, e);
}

但很明显,我不确定如何正确发送left button对象(如果可能)。

您必须在第二个方法中调用该方法。比如:

myproject.ProcessIcon.ni_MouseClick(sender, mousebutton.left);
public void SecondMethod(object sender, Args e){
    ni_MouseClick(sender, e);
}

您必须在第二个方法中调用该方法。比如:

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

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

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

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的答案思考和实施,他有更好的解决方案。

只需按以下方式更改代码:-

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

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

ni_MouseClick(发送者,新的MouseEventArgs(MouseButtons.Left,0,0,0,0);
?myproject的数据类型是什么?@Lucifer只需要一个额外的数据即可);最后。谢谢你把它写下来作为回答:)
ni_MouseClick(发送者,新的MouseEventArgs(MouseButtons.Left,0,0,0,0);
?myproject是什么数据类型?@Lucifer工作一个处理只需要额外的数据即可));最后。谢谢把它写下来作为回答:)谢谢虽然@Lucifer建议有效,但这种方法更好,因为我可以将鼠标点击返回到private。感谢tipThanks虽然@Lucifer建议有效,但这种方法更好,因为我可以将鼠标点击返回到private。谢谢你的提示