Bonjour,

J'ai écris un programme, une Form , comprenant une vingtaine de bouton. Je voudrai que l appuie sur la barre espace fasse la meme actin que sur un bouton. J'ai écris un petit programme pour valider , ou j'ai 2 boutons, l'un génère un son, et le deuxième incrémente un compteur dont la valeur s'affiche dans un label. Je voudrai qu'en appuyant sur la barre espace un message s'affiche dans le label:

j'ai bien vu qu'il fallait que KeyPreview soit a True, mais ça ne marche pas. Dans Google, j'ai cherché des exemples mais je n'ai rien trouvé. Si vous me donnez une page ou je trouve ma réponse, cela me va parfaitement. Je pense que le problème viens de la fonction : F_BarreEspace.

Merci de votre aide.

Pascal

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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;
 
using Microsoft.DirectX;
using Microsoft.DirectX.DirectInput;
using Microsoft.DirectX.AudioVideoPlayback;
using System.Collections;
 
namespace utilisation_de_la_barre_espace
{
    public partial class Form1 : Form
    {
        int variable; 
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, KeyPressEventArgs e)
           {
                    F_BarreEspace(e);
           }
 
        private void button_son_Click(object sender, EventArgs e)
        {
            System.Media.SoundPlayer player = new System.Media.SoundPlayer(Application.StartupPath + @"\sons\son_2.wav");
            player.Play();
        }
 
        private void button_compteur_Click(object sender, EventArgs e)
        {
            variable++;
            label1.Text = variable.ToString("D2");
        }
 
 
        private void F_BarreEspace(System.Windows.Forms.KeyPressEventArgs e = null)
        {
            if (e != null)
            {
            MessageBox.Show(e.KeyChar.ToString());
                if (e.KeyChar == (char)Keys.Space)
                {
                    MessageBox.Show("Test espace"); //b mettre ici la fonction espace
                  label1.Text = " la barre espace marche" + variable.ToString("d2");
                }
             }
            else
            {
                MessageBox.Show("Test click");
            }
        }
 
 
    }  //  public partial class Form1 : Form
}  //  namespace utilisation_de_la_barre_espace