没有重载匹配委托'System.EventHandler'/'System.Windows.Forms.FormClosedEventHandler'

时间:2015-04-02 12:20:16

标签: c#

我是编程领域的新手,我有一些问题。我将不胜感激任何帮助!!

我有一个表格" FW_Details"在选择了来自treeView2(8个节点)的节点后打开,并且用户单击了一个按钮。我希望当表单打开以显示先前插入的数据时,让用户修改它以及何时关闭以保存已修改的数据(对于每个特定节点)。

从主窗体调用FW_Details表单:

        foreach (TreeNode node in treeView2.Nodes)
        {
            if (node.IsSelected)
            {
                FW_Details fw = new FW_Details(node.Name);
                fw.Show(); 
            }

FW_Details包含:

public partial class FW_Details : Form
{
    public  FW_Details(string name)
    {
        switch (name)
        {
            case "x":
                FW_Details_Load(null, null, "x");                
                break;
            case "y":
                FW_Details_Load(null, null, "y");
                break;

事件:FW_Details_Load

    private void FW_Details_Load(object sender, EventArgs e, string mycase)
    {
        switch (mycase)
        {
            case "x":
                Quellpfad.Text = Properties.Settings.Default.Quellpfad;
                Zielpfad.Text = Properties.Settings.Default.Zielpfad;
                Schlüsselwort.Text = Properties.Settings.Default.Schlüsselwort;
                DateiTyp.Text = Properties.Settings.Default.DateiTyp;
                Suchzeit.Text = Properties.Settings.Default.Suchzeit.ToString();
                break;
            case "y":
                Quellpfad.Text = Properties.Settings.Default.Quellpfad;
                Zielpfad.Text = Properties.Settings.Default.Zielpfad;
                Schlüsselwort.Text = Properties.Settings.Default.Schlüsselwort;
                DateiTyp.Text = Properties.Settings.Default.DateiTyp;
                Suchzeit.Text = Properties.Settings.Default.Suchzeit.ToString();
                break;

事件:FW_Details_FormClosed

    private void FW_Details_FormClosed(object sender, FormClosedEventArgs e, string mycase)
    {

        switch (mycase)
        {
            case "x":
                Properties.Settings.Default.Quellpfad = Quellpfad.Text;
                Properties.Settings.Default.Zielpfad = Zielpfad.Text;
                Properties.Settings.Default.Schlüsselwort = Schlüsselwort.Text;
                Properties.Settings.Default.DateiTyp = DateiTyp.Text;
                Properties.Settings.Default.Suchzeit = Convert.ToInt32(Suchzeit.Text);
                Properties.Settings.Default.Save();
                break;

Q1:我收到2条错误消息:

Error 1. No overload for 'FW_Details_FormClosed' matches delegate 'System.Windows.Forms.FormClosedEventHandler'

Error 2 No overload for 'FW_Details_Load' matches delegate 'System.EventHandler'

是不是因为我为活动添加了参赛者" string mycase"?我该如何解决这个问题?

Q2。在FW_Details表单加载数据后出现在屏幕上..我希望用户能够修改参数 表单,然后保存为每个节点指定的参数...我该怎么做?我应该在show ...之后在主窗体中调用事件FW_Details_FormClosed但是它无法识别

1 个答案:

答案 0 :(得分:0)

您无法自己向事件处理程序委托添加参数。你必须遵守代表们的意见。由事件定义的签名。

这意味着private void FW_Details_Load(object sender, EventArgs e, string mycase)应该成为private void FW_Details_Load(object sender, EventArgs e)等等。

您可能希望mycase成为类变量,因此您可以在事件处理程序中访问它:

public partial class FW_Details : Form
{
    private string mycase;

    ...
}