2010-11-22 8 views
0

Je cherche à avoir un programme attendre qu'un événement de clic se produise. C'est mon code pour l'événement click. Le programme passe directement à travers. Pour vous donner un contexte, c'est un programme othello, et c'est pour quand c'est un tour des humains. Malheureusement, le programme passe à travers et continue et le lecteur AI s'enfonce.Avoir un programme attendre un événement de clic

for (int i = 0; i < 8; i++) 
     { 
      for (int j = 0; j < 8; j++) 
      { 

       textboxes[i, j].Click += new EventHandler(textboxes_Click); 
       textboxes[i, j].Tag = new GridIndex() { ipos = i, jpos = j }; 

      } 
     } 

Ensuite, je gère textboxes_Click.

Merci pour l'aide! -Lewis

+0

Ce que vous avez fait ici est d'ajouter 64 gestionnaires d'événements dans votre zone de texte. Vous devez lire sur le modèle d'événement. – smirkingman

+0

Pourquoi pensez-vous que l'exécution du programme sera suspendue, compte tenu du code que vous avez montré? Il passera par la boucle 'for' et continuera le code après. –

Répondre

1

qui vient d'ajouter des gestionnaires à exécuter lorsque quelque chose est cliqué (même si je ne suis pas convaincu que textboxes sont vraiment les meilleurs contrôles à l'aide d'ici).

Vous devez penser à la programmation GUI d'une manière événementielle: vous ne dirigez pas le flux de contrôle, ce que fait l'utilisateur. Vous configurez tout de sorte que lorsqu'un événement se produit, vous réagissez de manière appropriée. Donc, au lieu de faire disparaître le joueur IA immédiatement après avoir configuré les gestionnaires d'événements, vous devez réagir au joueur humain en faisant un tour en faisant partir le joueur IA - en supposant que le tour était valide, de cours. En d'autres termes, votre gestionnaire d'événement pour réagir au tour du joueur humain doit inclure une logique pour déterminer à qui il revient ensuite, et prendre le virage si c'est l'IA. (Cette logique générale devrait être encapsulée dans une autre méthode, et exécutée après le tour de l'IA - de cette façon, vous pourriez avoir deux ordinateurs jouant l'un contre l'autre, ou deux humains, etc.)

Questions connexes