在MenuStripItem按下退出应用程序

时间:2015-04-28 00:30:22

标签: c# messagebox quit menustrip eventargs

我对C#很陌生,今天我跑进了一个bug。

我在Visual Studio 2013中使用Visual C#制作Windows窗体应用程序。 在项目的“Form1 [Design]”选项卡中,我添加了一个MenuStrip,然后我在其中创建了一个“New”和“Quit”项。

当我按下“退出”按钮(此处标识为quitterLapplicationToolStripMenuItem,由VS2013自动生成)时,我将运行此代码:

private void quitterLapplicationToolStripMenuItem_Click(object sender, CancelEventArgs c, EventArgs e)
{
    DialogResult resultat = MessageBox.Show("Close?" + Environment.NewLine + Environment.NewLine + "Really ? No more notifications ?", "Closing", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
    if (resultat == DialogResult.Yes)
    {
        MessageBox.Show("Prog stopped correctly", "Quit");
        Application.Exit();
    }
    else
    {
        c.Cancel = true;
        this.WindowState = FormWindowState.Minimized;
        this.ShowInTaskbar = false;
    }
}

当我尝试运行时,出现错误,说:

  

'quitterLapplicationToolStripMenuItem_Click'没有重载匹配   委托'System.EventHandler'

哦,这是导致错误的行:

this.quitterLapplicationToolStripMenuItem.Click += new System.EventHandler(this.quitterLapplicationToolStripMenuItem_Click);

我该怎么办?我被困住了,我找不到任何可以帮助我的东西(而且我能理解)

1 个答案:

答案 0 :(得分:3)

替换:

(object sender, CancelEventArgs c, EventArgs e)

(object sender, EventArgs e)

方法上的参数不正确:你有两种不同方法签名的混搭。

它应该是:

private void quitterLapplicationToolStripMenuItem_Click(object sender, CancelEventArgs c)

private void quitterLapplicationToolStripMenuItem_Click(object sender, EventArgs e)