C# 从Form1中调用方法,还是从另一个类调用按钮和文本字段?

C# 从Form1中调用方法,还是从另一个类调用按钮和文本字段?,c#,class,methods,call,C#,Class,Methods,Call,好吧,那么: 我在Form1中有一个restart()方法可以重新启动我的游戏,它还会将标签、文本字段、组框等更改为可见 我需要在游戏中使用此方法。cs,问题是,当我在游戏中使用此方法时,C#会给我大量错误。cs 所以我想知道我怎么能 -从Game.cs中调用Form1方法 -使用Game.cs使TXT、LBL等更改生效 非常感谢你 编辑:这里是重启方法 public void restart() { lblBeschrijving.Visible = true; gbNaam.

好吧,那么:

我在Form1中有一个
restart()
方法可以重新启动我的游戏,它还会将标签、文本字段、组框等更改为可见

我需要在
游戏中使用此方法。cs
,问题是,当我在
游戏中使用此方法时,C#会给我大量错误。cs

所以我想知道我怎么能 -从Game.cs中调用Form1方法 -使用Game.cs使TXT、LBL等更改生效

非常感谢你

编辑:这里是重启方法

public void restart() {
    lblBeschrijving.Visible = true;
    gbNaam.Visible = true;
    lblNaam.Visible = true;
    txtNaam.Visible = true;
    gbMuren.Visible = true;
    cmbMuren.Visible = true;
    lvlMuren.Visible = true;
    gbMoeilijkheid.Visible = true;
    cmbMoeilijkheid.Visible = true;
    lblMoeilijkheid.Visible = true;
    picBeginscherm.Visible = true;
    btnSpelen.Visible = true;
    tmrSnake_Tick.Enabled = false;
    nFoodTeller = 0;
    foodExtra.nEnabled = true;


    nScore = System.Convert.ToInt32(snakeScoreLabel.Text);

    snake = new Snake();

    DialogResult error;
    error = MessageBox.Show("Oh no! You killed the snake!\nDo you wish to play Again?\n\nYou scored " + nScore, "Snake Game Error", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
    // ..and the snake's dead!

    if (error == DialogResult.No) {
        Close();
    }
}

我假设我在c#上编程游戏的水平和你一样。以下是我的经验:

游戏逻辑和UI是两个独立的实体,UI控制游戏,而不是相反。这可以确保如果用户界面发生变化,游戏仍能正常运行。实现这一点的方法是声明您的主UI可以钩住的事件和委托。因此,当您触发事件时,UI将接收信息。例如,我使用事件更新俄罗斯方块的分数:


祝您好运探索

我可以将此功能分为两种方法:一种是重新启动gui(格式为1),另一种是重新启动游戏逻辑并将其放入game.cs。所以你可以在你的表格中把它们都称为1.c那太棒了。我将用我的重新启动方法完全更新第一篇文章。听起来Game.cs应该有一个自定义事件,如“restart”,Form1附加到该事件并重置UI。将UI与游戏分开