2010-05-24 9 views
0

Comment puis-je obtenir le Xwinnerform pour rester au top et éviter que le formulaire principal ne soit cliqué? J'ai essayé ShowDialog mais je n'arrive pas à le faire fonctionner.Afficher la question de boîte de dialogue

static public bool CheckWinner(Button[] myControls) 
      { 
       //bolean statement to check for the winner 
       bool gameOver = false; 
       for (int i = 0; i < 8; i++) 
       { 
        int a = Winners[i, 0]; 
        int b = Winners[i, 1]; 
        int c = Winners[i, 2]; 

        Button b1 = myControls[a], b2 = myControls[b], b3 = myControls[c]; 
        if (b1.Text == "" || b2.Text == "" || b3.Text == "") 
         continue; 
        if (b1.Text == b2.Text && b2.Text == b3.Text) 
        { 
         xWinnerForm xWinnerForm = new xWinnerForm(); 
         xWinnerForm.ShowDialog(b1.Text + " is the Winner"); 

        } 



       } 


         return gameOver; 
      } 
     enter code here 
+1

"... ne peut pas faire fonctionner" est trop vague. Qu'est-ce qui ne fonctionne pas? – Thomas

+0

Pourriez-vous expliquer "ne peut pas le faire fonctionner?" ShowDialog est la méthode appropriée. –

+0

il est dit La meilleure méthode de surcharge pour 'name' a des arguments invalides –

Répondre

1

Il n'y a pas de surcharge de ShowDialog qui accepte une chaîne. Comme cela vous a été suggéré dans une autre question, n'utilisez pas la méthode Show (ou ShowDialog) pour remplir la valeur d'une étiquette. Soit créer une propriété sur votre formulaire qui obtient et définit le texte de l'étiquette ou créer une fonction qui le définit, puis appelez simplement ShowDialog(this).

0

Je pense que vous devez passer la forme mère comme argument pour ShowDialog:

xWinnerForm.ShowDialog(mainForm); 

Puisque vous faisant passer un string, je devine que vous surchargé ShowDialog dans xWinnerForm. Ajoutez une surcharge qui accepte également le paramètre IWin32Window et le transmet à la méthode de classe de base. Ou mieux encore, ne surchargez pas ShowDialog, mais passez plutôt le texte de la fenêtre au constructeur xWinnerForm().

+0

Je suis nouveau à ce que vous pourriez me donner un exemple plus clair si ce n'est pas trop de problèmes –

1

On dirait que vous avez besoin d'une MessageBox

MessageBox.Show(b1.Text + " is the Winner"); 
+0

J'en avais un là-dedans mais le projet nécessite un appel à travers une classe –

Questions connexes