C# 在表单之间发送变量

C# 在表单之间发送变量,c#,forms,C#,Forms,我正在制作一个游戏,我使用了三种主要形式,一种是开始菜单,一种是主要游戏形式,另一种是创建地图形式。我的问题是如何在它们之间发送变量。我知道经典的表单设置,你可以从一个表单显示另一个表单,然后像这样传递信息 Form1 form = new Form1(); form.Show(); form.varible = ... 但是我不喜欢上一个表单的显示方式,而且form.ShowDialog也不是我想要的。我有一个系统,你可以循环浏览表单,它可以打开你的新表单,关闭旧表单,它工作得很好,只

我正在制作一个游戏,我使用了三种主要形式,一种是开始菜单,一种是主要游戏形式,另一种是创建地图形式。我的问题是如何在它们之间发送变量。我知道经典的表单设置,你可以从一个表单显示另一个表单,然后像这样传递信息

 Form1 form = new Form1();
 form.Show();
 form.varible = ...
但是我不喜欢上一个表单的显示方式,而且
form.ShowDialog
也不是我想要的。我有一个系统,你可以循环浏览表单,它可以打开你的新表单,关闭旧表单,它工作得很好,只是我不知道如何向新表单发送信息。我把Program.cs代码改成这样

    public static bool OpenForm1OnClose { get; set; }
    public static bool OpenForm2OnClose { get; set; }
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        OpenForm1OnClose = true;
        OpenForm2OnClose = false;
        while (OpenForm1OnClose || OpenForm2OnClose)
        {
            if(OpenForm1OnClose) 
                Application.Run(new Form1());
            if (OpenForm2OnClose)
                Application.Run(new Form2());
        }

    }

这就是所有的代码,没有更多的东西了。任何关于如何传递变量的想法都是非常棒的,或者如果不可能的话,关于在表单之间切换的好方法的建议都会很有帮助。感谢阅读

如果你问我的想法,答案很简单。您只需要让构造函数将信息作为参数

private var myInfo;

public Form1(var myInfo_)
{
    InitializeComponent();
    myInfo = myInfo_;
}

我希望这实际上就是您想要的。

只需向您的应用程序中添加一个负责数据流的类即可。它可以是一个静态类,也可以是一个Singleton,没什么大不了的。我会更深入地研究静态类,我不是一个经验丰富的程序员,但我知道你在想什么,它应该可以工作,谢谢。聪明,但不幸的是,我无法发送任何用途的变量,因为它在调用表单的program.cs中,我不知道我要送什么。
private var myInfo;

public Form1(var myInfo_)
{
    InitializeComponent();
    myInfo = myInfo_;
}