Timer programmé avec barre espace

Résolu
Flodeb Messages postés 5 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 30 avril 2010 - 12 avril 2010 à 16:45
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 6 mai 2010 à 13:17
Bonjour,
Je souhaite activer un un timer avec la barre espace, je suis pour le moment capable de le faire en cliquant sur un bouton mais je veux remplacer le clic sur le bouton par une pression sur la barre espace:
Pour le moment mon code est le suivant (je suppose que je dois remplacer "private void button1_Click(object sender, EventArgs e)" par qqc qui est déclenché la barre espace...mais quelle est la ligne de commande pour cela..
Merci d'avance pour votre réponse
Flo
PS: je suis débutant en programmation



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace FloTimer
{
public partial class Form1 : Form
{

bool EtatTimer = false;
int compteur = 0;
public Form1()
{
InitializeComponent();
timer1.Interval = 1000;
button1.Text = "Start";
label1.Text = "timer";
label1.Visible = true;
}

private void button1_Click(object sender, EventArgs e)
{
if (EtatTimer == false)
{
timer1.Start();
EtatTimer = true;
button1.Text = "Stop";
//label1.Visible = true;
label1.Text = compteur.ToString();
}
else
{
timer1.Stop();
EtatTimer = false;
button1.Text = "Start";
compteur = 0;
label1.Text = "Timer";
//label1.Visible = false;
}
}

private void timer1_Tick(object sender, EventArgs e)
{
compteur++;
label1.Text = compteur.ToString();
}

}
}

6 réponses

Flodeb Messages postés 5 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 30 avril 2010
30 avril 2010 à 12:45
OK, merci à tous! J'ai finalement réussi avec ce type de commande

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == ' ')

Encore, merci pour votre aide!
3
cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
12 avril 2010 à 17:29
Je pense qu'il faut regarder du coté du hook du clavier.
http://blogs.msdn.com/toub/archive/2006/05/03/589423.aspx
Dans cet exemple le hook est en low-level mais tu as juste a changer la valeur de cette constante. De mémoire il me semble que c'est 2 à la place de 13. Pour être sur je te laisse chercher la valeur de WH_KEYBOARD sur google.
private const int WH_KEYBOARD_LL = 13;
0
Flodeb Messages postés 5 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 30 avril 2010
12 avril 2010 à 17:56
Merci beaucoup,
Donc si j'ai bien compris en rajoutant cette ligne je vais définir le clavier comme aurait pu l'être un bouton ou un autre élément créé avec windows form...
Mais ensuite comment insérer cela en haut de ma boucle?
Dsl si mes questions paraissent idiotes mais je suis un vrai débutant en programmation windows (un débutant intéressé mais un débutant quand même ^^)!
Merci d'avance
0
cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
12 avril 2010 à 18:03
En gros le hook permet d'enregistrer tous les messages venant tu clavier. Il est donc facile de détecter lorsque la touche espace est appuyer.
Je te conseille de te renseigner un peu sur les hook. demande à Google, il en sait beaucoup. Faut juste savoir le faire parler
0

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

Posez votre question
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
13 avril 2010 à 04:52
Salut, un hook c'est un peu compliqué pour un débutant.

Pour gérer le clavier lorsque ta forme est au premier plan il suffit de surcharger (réécrire) la fonction OnKeyDown ou de s'abonner à l'évènement KeyDown.

Si la forme n'est pas au premier plan dans ce cas oui il faut utiliser un hook, ce n'est pas une classe .NET c'est des fonctions de l'API Win32.
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
6 mai 2010 à 13:17
KeyDown est mieux que KeyPress dans ton cas, mais c'est le même principe.
0
Rejoignez-nous