我在Form.cs中有这个结束表单代码
public void label7_Click(object sender, FormClosingEventArgs e)
{
MessageBox.Show("Are you sure you want to exit?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (MessageBox.Show("Are you sure you want to exit?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
e.Cancel = true;
}
else {
Application.Exit();
}
}
和我的Form.designer.cs中的代码
this.label7.Click += new System.EventHandler(this.label7_Click);
但是它一直显示错误“'label7_Click'没有重载'匹配委托'System.EventHandler'”
我该怎么办?
答案 0 :(得分:0)
似乎label7_Click
方法不存在
this.label7.Click += new System.EventHandler(this.label7_Click);
void label7_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Are you sure you want to exit?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
//
}
else {
Application.Exit();
}
}
No overload for 'label7_Click' matches delegate
public void label7_Click(object sender, FormClosingEventArgs e)//this method de is incorrect
答案 1 :(得分:0)
您的代码有点令人困惑。用户何时退出应用程序时单击label7?您订阅的Click事件在引发时不提供FormClosingEventArgs。 Click是一个EventHandler事件,这意味着它在引发时提供了一个EventArgs对象。 EventArgs类中没有Cancel属性。
当用户点击label7时,您似乎想要显示MessageBox。 MessageBox将询问用户“您确定要退出吗?”,如果用户单击“是”,则应用程序将关闭。如果是这样,请尝试:
private void label7_Click(object sender, EventArgs e)
{
var result = MessageBox.Show("Are you sure you want to exit?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
Application.Exit();
}
}
label7.Click += label7_Click;