C# Highscore表单到表单数据传输

C# Highscore表单到表单数据传输,c#,forms,transfer,C#,Forms,Transfer,我正在做一个简单的游戏,你驾驶飞船四处飞行,躲避小行星,直到它们撞到你,然后你爆炸。我有一个游戏表单,当你在5秒后被击中时(我使用计时器),它会勾选关闭该表单并打开一个新表单(EndGameForm)。我将展示我的代码,但似乎出现了故障,而且我在C#方面的知识非常有限 private void GameEndTimer_Tick(object sender, EventArgs e) { this.Visible = false; EndGameForm gfor

我正在做一个简单的游戏,你驾驶飞船四处飞行,躲避小行星,直到它们撞到你,然后你爆炸。我有一个游戏表单,当你在5秒后被击中时(我使用计时器),它会勾选关闭该表单并打开一个新表单(EndGameForm)。我将展示我的代码,但似乎出现了故障,而且我在C#方面的知识非常有限

private void GameEndTimer_Tick(object sender, EventArgs e)
{
        this.Visible = false;
        EndGameForm gform = new EndGameForm();
        gform.Show();
        GameEndTimer.Enabled = false;
        var frm2 = new EndGameForm(ScoreLabel.Text.ToString());
        frm2.Show();
}
这是在第一个表单中,保存分数标签中的文本并打开新表单

public EndGameForm(string s)
{
        InitializeComponent();
        Score1Label.Text = s;
}
这是第二种形式,调用save并设置新的Highscore标签

错误代码:错误1“SemesterProject.EndGameForm”不包含 接受0个参数的构造函数\HHS-FS2\Home$\Students\10 等级\985832\CP C#\SemesterProject\SemesterProject\GameForm.cs 82 33 SemesterProject


您需要将某些内容传递给
EndgameForm
类的构造函数,因为它应该基于您的设计

根据经验,这可以通过调用方类中的字符串字段类完成:

private string _tobeSentAsArgument {get; set;}
在您希望的任何地方初始化后,即可使用:

private void GameEndTimer_Tick(object sender, EventArgs e)
{
    this.Visible = false;
    EndGameForm gform = new EndGameForm(this._tobeSentAsArgument);
    gform.Show();
    GameEndTimer.Enabled = false;
    var frm2 = new EndGameForm(ScoreLabel.Text.ToString());
    frm2.Show();
}

错误是不言自明的。。。您已经将一个
字符串作为参数传递给
EndGameForm
类的构造函数声明。但在它的召唤中,没有任何论据被传递到。。。