尝试在另一种方法中提及事件处理程序时出现无法理解的错误

Having incomprehensible error when trying to mention an event handler in another method

我想通过单击工具条菜单项将我的 WinForms 应用程序移动到系统托盘中,但是当我尝试提及我编写的方法时,出现如下错误:Conversion from System.EventArgs to System.Windows.Forms.MouseEventArgs not possible , 但我不想转换任何东西,我只是给方法我的参数 e.

我尝试使用的方法声明:

private void Form1_Resize(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                Hide();
                notifyIcon.Visible = true;
            }
        }

private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            Show();
            this.WindowState = FormWindowState.Normal;
            notifyIcon.Visible = false;
        }

(请注意,这两个是调整我的表单大小时并双击系统托盘中的图标时的简单事件处理程序)

我想像这样使用它们

private void inTrayVerschiebenToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form1_Resize(sender, e);
            notifyIcon_MouseDoubleClick(sender, e);
        }

但在后者 e 上,我遇到了上述错误。我目前正在使用 VS 2019 和 C#

notifyIcon_MouseDoubleClick 需要一个 MouseEventArgs 参数;现在,e 是一个 EventArgs 参数;它是否 实际上 一个 MouseEventArgs 实例:我们不知道;但是:您不能将 EventArgs 传递给需要 MouseEventArgs 值的对象。编译器只是告诉你 不能为你做那件事,所以:你必须更具体地告诉它如何获得 MouseEventArgs要传递给 notifyIcon_MouseDoubleClick.

的值

也许或者;稍微重组代码,即


private void Form1_Resize(object sender, EventArgs e)
{
    HandleResize();
}
private void HandleResize()
{
    if (this.WindowState == FormWindowState.Minimized)
    {
        Hide();
        notifyIcon.Visible = true;
    }
}

private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
    HandleDoubleClick();
}
private void HandleDoubleClick()
{
    Show();
    this.WindowState = FormWindowState.Normal;
    notifyIcon.Visible = false;
}
private void inTrayVerschiebenToolStripMenuItem_Click(object sender, EventArgs e)
{
    HandleResize();
    HandleDoubleClick();
}