我对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);
我该怎么办?我被困住了,我找不到任何可以帮助我的东西(而且我能理解)
答案 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)