Keydown

Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006 - 5 mai 2005 à 00:27
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006 - 5 mai 2005 à 17:03
Salut, j'aimerai que quand j'appuie sur la touche p, mon programme se met
en pause (la pause est représentée par form3) et que quand je rappuie sur p le
jeu se remet en route la où il s'était arréter. J'ai donc utilisé un keyDown comme
ceci :
private void Form2_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)

{
if (e.KeyCode == Keys.Pause)
{
Form3 form3 = new Form3();
form3.ShowDialog();
}
}

Le prob, c'est que j'appuie une foi quan je sui dan ma form2 mais, il ne l'affiche même pas et me réaffiche la form1. je sais pas comment faire ??

K.bitnik

11 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 mai 2005 à 00:33
Salut,

Si tu veux utiliser P il faut mettre Keys.P au lieu de Keys.Pause non ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006
5 mai 2005 à 00:42
J'ai essayé les 2 mais ça fait exactement la même chose, il ne m'affiche pa du tout la form3, quitte la form2 et remet la form1.
pourtant tout ce que je veux faire c'est appuyer sur "p" pour qu'il lance la form3 et qu'il suspen la form2(qu'il fait une pause quoi) et puis que quand je rappuie sur "p" il me quitte la form3 et remet la form2 comme elle était avant d'avoir fait pause. Le problème c'est que je ne sais pas comment faire !

K.bitnik
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 mai 2005 à 00:49
As tu affecter true à la propriété KeyPreview de ton instance de Form2 ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006
5 mai 2005 à 01:02
je vien de le faire mais ça fait toujours pareil ! j'ai remplacé form3.showdialog(); par form3.show(); ça ne fait pas pareil (quand j'appuie sur p, ça affiche la form1 mais ça laisse derriere la form2) c un bordel !
peut-etre qu'il affiche la form3 mais je n'ai peut-etre pas le temps de la voir ?? je ne sais pas ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 mai 2005 à 08:37
Avec ShowDialog normalement non.
Je ne vois pas pourquoi ça fait ça.

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006
5 mai 2005 à 14:21
c pareil ! j'ai fait ça, ça fonctionne mais le problème c'est qui recharge ma form2 et moi je ne veux pas. En faite je fais un jeu donc les compteurs sont en route, je joue, j'appuie sur "p" pour faire pause ça va mais quand je reviens a ma form2 elle se remet au début, tout recomence a 0. C'est pas ce que je veux !! Comment je pourrai faire ça ??
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
5 mai 2005 à 14:37
Il est entier ton extrait de code, y'a pas une branche else ou autre chose qui referme ta form ? Il faut peut etre mieux utiliser OnKeyUp ( form_KeyUp ), dans un OnKeyDown une simple pression peut appeler des centaines de fois l'evenement !
0
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006
5 mai 2005 à 15:02
J'ai juste mis dans ma form3 ceci :
private
void Form3_OnKeydown(
object
sender, System.Windows.Forms.KeyEventArgs e)
{

if (e.KeyCode == Keys.P)
{
Form3.ActiveForm.Close();
}
}

Mais je sais pas comment faire là, depuis hier soir je suis bloqué. En faite je voudrais que quand j'appuie sur "p" 'il ne me ferme pas la form2 il ouvre la form3 et quand je rappuie il ferme la form3 et me réouvre la form2 mais sans la recharger.
Ou alor il y a une autre possibilité, c'est de cacher la form2, de lancer la form3 et quand je rappui sur "p" ça me ferme la form3 et me remontre la form2 tél quél était avant que je fasse pause.
Pfffff, je sais pas, j'ai essayé plein de truc mais rien ne va !
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 mai 2005 à 15:22
Euh, pourquoi tu utilises Form3.ActiveForm.Close(); et non pas tout simplement Form3.Close(); ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 mai 2005 à 15:23
Oups, je me suis trompé :
Euh, pourquoi tu utilises Form3.ActiveForm.Close(); et non pas tout simplement this.Close(); ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006
5 mai 2005 à 17:03
ça yé, j'ai enfin trouvé. Dans ma form2 j'ai mis :
private
void Form2_OnKeyDown(
object sender, System.Windows.Forms.KeyEventArgs e)
{
Form3 form3 =
new Form3();

if (e.KeyCode == Keys.P)
{
Form1.ActiveForm.Hide();
form3.Show();
}
}

et dans la form3 :

private
void Form3_OnKeydown(
object sender, System.Windows.Forms.KeyEventArgs e)
{

if (e.KeyCode == Keys.P)
{

this.Close();
Form2 form2 =
new Form2();
form2.ShowDialog();
}
}

Là, quand on fait pose cela recommence tout depuis le début, j'ai simplement mi ma variable en static public et maintenant ça marche !!
Merci pour tout

K.bitnik
0
Rejoignez-nous