J'ai donc créé un formulaire avec un navigateur à la page "News" sur le site de mon jeu. Il a 2 boutons: "Démarrer le jeu" et "Éditeur de niveau".Démarrer un formulaire avant de lancer un jeu XNA
Je suis actuellement en utilisant DialogResult
pour vérifier si l'un de ces boutons a été cliqué - "Démarrer le jeu" a DialogResult = Yes
et "Éditeur de niveau" a DialogResult = No
. Ouais, c'est une solution moche mais je ne pouvais pas le faire fonctionner avec Application.Run(newsForm);
parce que je ne savais pas comment vérifier les clics de bouton en dehors de la classe newsForm
.
Program.cs de mon projet XNA:
[STAThread]
private static void Main()
{
Application.EnableVisualStyles();
using (var newsForm = new NewsForm())
{
if (newsForm.ShowDialog() == DialogResult.Yes)
{
using (var game = new Game1())
{
game.Run();
}
newsForm.Dispose();
}
else if (newsForm.ShowDialog() == DialogResult.No)
{
using (var editor = new EditorForm())
{
Application.Run(editor);
newsForm.Dispose();
}
}
}
}
Dans mon concepteur NewsForm
je mis la propriété DialogResult
des boutons à la valeur appropriée. Mais j'ai un autre problème:
Lorsque je clique sur "Démarrer le jeu", le formulaire XNA s'affiche correctement et le NewsForm
est fermé. Mais quand je clique sur "Éditeur de niveau" le formulaire a l'air de se fermer puis de rouvrir ... Je dois cliquer à nouveau sur le bouton pour lancer le formulaire editor
. Et si je clique sur "Démarrer le jeu", il se ferme. Je suis sûr que c'est causé par le DialogResult
.
Comme je l'ai dit plus haut, la façon dont je le fais est certainement pas une sage conception correcte, parce que:
- Il est une forme, pas une boîte de dialogue
- Les boutons ne signifient pas ce que le
DialogResult
ou l'utilisateur les attend signifie
donc, si vous avez une idée comment je peux obtenir ce que je décris ci-dessus, ou (de préférence) sans ShowDialog
, je serais reconnaissant.
fonctionne parfaitement. –