2015-07-21 5 views
-2

Я пытаюсь сделать winform открытой форму Xna. глядя в Интернете, лучший способ, который я обнаружил, заключался в том, чтобы сначала открыть форму через program.cs, а затем поставить оператор if, который проверяет, нажал ли кнопка запуска на winform, которая даст DialogResult.OK. Я знаю, что мне нужно запустить форму с помощью ShowDialog, но я получаю две формы с моим текущим кодом. он открывает один, я закрываю его, он открывает еще один winform, и когда вы закрываете это, вы получаете форму Xna. Какие-либо предложения? вот мой код:Как вы используете Form.ShowDialog(); правильно с program.cs?

 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)

ответ

0

форма отображается дважды, потому что вы вызываете ShowDialog дважды, но ничего не делаете с результатом первого вызова. Изменить на:

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

Я побежал без первого Form.ShowDialog, но это все, что закрывается после того, как я нажал кнопку запуска без него ... – Alexandre

+0

Does 'game.Run' икру темы или что-то? Вы пытались запустить его в отладчике, чтобы узнать, станет ли проблема очевидной? –

+0

, когда я запускаю его в отладчике, в нем нет проблем. Всплывающие флажки или Исключения, я нажимаю кнопку, и весь отладчик закрывается, как будто я закрыл приложение. Игра. Run должна только открыть форму Xna. Я новичок в Xna, так что может случиться так, что game.Run вызывает только код для запуска. Я не уверен. Я не понимаю, в чем проблема, если она работает, когда я дважды вызываю ShowDialog. – Alexandre

Смежные вопросы