【问题标题】:Highscore Form to Form data transfer高分表格到表格数据传输
【发布时间】:2015-05-18 13:56:33
【问题描述】:

我正在制作一个简单的游戏,您可以在其中驾驶飞船,躲避小行星,直到它们击中您并炸毁。我有一个游戏表格,然后当你在 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;
}

那是第二种形式,调用保存并设置新的高分标签。

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

【问题讨论】:

  • 错误是不言自明的...您已将string 作为参数传递给EndGameForm 类的构造函数声明。但是在它的调用中,没有任何参数被传递到...

标签: c# forms transfer


【解决方案1】:

您需要将一些内容传递给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();
}

【讨论】:

    猜你喜欢
    • 2016-05-28
    • 2012-05-02
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    相关资源
    最近更新 更多