你如何使用Form.ShowDialog();正确使用program.cs?

时间:2015-07-21 17:02:23

标签: c# winforms xna xna-4.0

我正在努力让winform打开Xna表单。在网上看我发现的最好的方法是首先通过program.cs打开表单,然后输入一个if语句,检查你是否点击了winform上的开始按钮,它将给出DialogResult.OK。我知道我需要使用ShowDialog启动表单,但我使用当前代码获得两个表单。它打开一个,我关闭它,它打开另一个winform,当你关闭它时,你得到Xna表格。有什么建议? 这是我的代码:

     static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    static void Main(string[] args)
    {
      using(Form1 form = new Form1())
      {
          form.ShowDialog();
          if(form.ShowDialog() == DialogResult.OK)
          {
              using (Game1 game = new Game1())
              {
                  game.Run();
              }

          }

          }
      }
    }

这是我的按钮代码:

           private void button1_Click(object sender, EventArgs e)
    {
        compotents comps = new compotents();
      comps.mass =   textBox1.Text;
      comps.velocity = textBox2.Text;
      comps.gravity = textBox3.Text;

      button1.DialogResult = DialogResult.OK;

      this.Close();
    }

(compotents是我用来存储变量并以xna形式使用它们的类)

1 个答案:

答案 0 :(得分:0)

表单显示两次,因为您正在调用ShowDialog两次,但没有对第一个调用的结果执行任何操作。改为:

  using(Form1 form = new Form1())
  {
      if(form.ShowDialog() == DialogResult.OK)
      {
          using (Game1 game = new Game1())
          {
              game.Run();
          }
      }
  }