Enregistrer seulement lorsqu'une touche est pressée

Signaler
Messages postés
41
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
11 juin 2010
-
 yves777 -
Bonjour à tous,

Je vous écris car je tente, en vain, de définir un moyen d'enregistrer des données seulement lorsque l'utilisateur appuie sur la touche Espace.

La fonction d'enregistrement existe déjà, je voudrais juste la déclencher seulement lors de cet événement.

Seulement voilà, je ne peux pas utiliser la fonction de déclenchement en réalisant un:

override protected void OnkeyPress .....

car je dois placer mon déclenchement dans une fonction même.

Il me faudrait donc plutôt quelque chose du type :

if (e.KeyChar == (
char)
Keys.Space){

// Fonction d' Enregistrement}

Cependant, je ne sais pas comment déclarer mes variables et je ne sais même pas si cela sera possible de cette façon.

Si quelqu'un a une petite idée, je suis vraiment preneur ;)

Merci de tout coeur

4 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
34
Salut, ça reste quand même possible avec les évènements à l'aide d'une glabale variable qui maintient l'état de la touche SPACE par exemple.. ou bien..

// Dans la forme.
[ DllImport( "user32.dll" ) ]
private static extern short GetKeyState( int vk );


// ..


// Dans la fonction.
if ( ( GetKeyState( 0x20 ) & 0x8000 ) == 0x8000 ) // VK_SPACE
{
    // ..
}
Messages postés
41
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
11 juin 2010

désolé, dans mon cas, ça ne marche pas....je suis désolé d'embeter avec ce pb....

le problème c'est que l'action de la barre espace est repérée dans une boucle...

mon programme est un peu de cette  sorte :

void Afficher_Image()
{

message =
"pause";
enreg.pause_enregistrement();

log.Text +=

"pause";log.Text +=

Environment.NewLine;affIm.Show();  //affIm ouvre une nouvelle Forme dans lequel vont défiler des images lors de la pression de la barre espace

}

}

override
protected
void OnKeyPress(
KeyPressEventArgs e) //Lors de la pression Espace du défilement des images, j'aimerais que cela reprenne l'enregistrement également{

if (e.KeyChar == (
char)
Keys.Space){

//reprise de l'enregistrement lors de l'appui sur la barre espace
...
}

En gros, mon pb c'est que l'enregistrement doit débuter SEULEMENT lorsque l'image suivante est affichée. Mais l'image est affichée dans une autre Forme et l'action s'effectue par la barre Espace.

C'est pourquoi j'aimerais associer la reprise de l'enregistrement à l'appui de la barre espace afin que les 2 choses soient synchronisée.

Mais apparemment, ma Forme principale ignore mon action Espace d'enregistrement et ne prend en compte que celle de la Forme où apparaissent les images.

J'ai essayé d'associer une autre touche à l'enregistrement mais cela fait la même chose.

J'ai l'impression que mon affIm.Show()  fige mon formulaire et qu'il attend que cela soit fini pour accepter les autres requêtes....

Quelqu'un a une idée?

Si je ne suis pas clair, redemandez moi svp

Merci bcp
salut je sui etudiant a Linuqua j'aimerais avoiur mon compte se connecter
Mois Je Suis AGENOR Jean Yves J'etais a L'uniqua, Pour avoir un compt il faut creer un okey mon porte