'button3_click'没有重载匹配委托system.eventhandler

时间:2016-03-03 15:18:27

标签: c#

我对C#编码很新,我正在尝试创建一个'取消'按钮。我收到上面的错误消息。有什么建议?提前致谢! 我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.FormClosing += new FormClosingEventHandler(button3_Click);
        }
        public void button3_Click(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
            this.Hide();
        }
    }
}

2 个答案:

答案 0 :(得分:1)

你的问题有点令人困惑。实际上你的代码应该编译得很好,因为Form.FormClosing事件需要一个与button3_Click具有完全签名的方法。

但这一切似乎并不是你真正想要的。我假设你想为你的按钮添加一个点击处理程序:

public Form1()
{
    InitializeComponent();
    this.button3.Click += button3_Click;
}
private void button3_Click(object sender, EventArgs e)
{
    this.DialogResult = DialogResult.Cancel;
    this.Close();
}

当用户点击按钮时,会引发Click事件(顾名思义)。

FormClosing即将关闭时会引发Form。您可以使用它(例如)要求用户进行确认:

public Form1()
{
    InitializeComponent();
    this.button3.Click += button3_Click;
    this.FormClosing += Form1_FormClosing;
}
private void button3_Click(object sender, EventArgs e)
{
    this.DialogResult = DialogResult.Cancel;
    this.Close();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = MessageBox.Show(this, "Do you really want to quit?", 
            "Quit?", MessageBoxButtons.YesNo) != DialogResult.Yes;
}

使用FormClosingEventArgs.Cancel属性,您可以告诉Form 关闭。

答案 1 :(得分:0)

这就是你需要的

    public Form1()
    {
        InitializeComponent();
    }

    public void button3_Click(object sender, EventArgs e)
    {
        this.Hide();
    }