我正在制作游戏,我使用了3种主要形式,一种是开始菜单,一种是主游戏形式,另一种是创建地图形式。我的问题是如何在它们之间发送变量。我知道经典的表单设置,你从另一个表单中显示一个表单,并传递这样的信息......
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 void button1_Click(object sender, EventArgs e) // form1's button
{
Program.OpenForm2OnClose = true;
this.Close();
}
那就是那里的所有代码,真的没有更多。关于如何传递变量的任何想法都会很棒,或者如果它直接不可能,那么在表单之间切换的好方法建议会有所帮助。感谢您的阅读
答案 0 :(得分:0)
如果你问我的想法,答案很简单。您只需要让构造函数将信息作为其args。
private var myInfo;
public Form1(var myInfo_)
{
InitializeComponent();
myInfo = myInfo_;
}
我希望这实际上是你想要的。