Timer programmé avec barre espace [Résolu]

Flodeb 5 Messages postés lundi 12 avril 2010Date d'inscription 30 avril 2010 Dernière intervention - 12 avril 2010 à 16:45 - Dernière réponse : Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention
- 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();
}

}
}
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Flodeb 5 Messages postés lundi 12 avril 2010Date d'inscription 30 avril 2010 Dernière intervention - 30 avril 2010 à 12:45
3
Merci
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!

Merci Flodeb 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de Flodeb
cs_GG29 327 Messages postés vendredi 23 décembre 2005Date d'inscription 8 février 2011 Dernière intervention - 12 avril 2010 à 17:29
0
Merci
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;
Commenter la réponse de cs_GG29
Flodeb 5 Messages postés lundi 12 avril 2010Date d'inscription 30 avril 2010 Dernière intervention - 12 avril 2010 à 17:56
0
Merci
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
Commenter la réponse de Flodeb
cs_GG29 327 Messages postés vendredi 23 décembre 2005Date d'inscription 8 février 2011 Dernière intervention - 12 avril 2010 à 18:03
0
Merci
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
Commenter la réponse de cs_GG29
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 13 avril 2010 à 04:52
0
Merci
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.
Commenter la réponse de Lutinore
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 6 mai 2010 à 13:17
0
Merci
KeyDown est mieux que KeyPress dans ton cas, mais c'est le même principe.
Commenter la réponse de Lutinore

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.