[C#] Afficher un texte pendant qu'un bouton est appuyé

Afficher un texte pendant qu'un bouton est appuyé [C#] - C#/.NET managed - Programmation

Marsh Posté le 06-05-2008 à 12:57:26    

Salut à tous,  
 
Je voudrais savoir comment faire pour afficher un texte dans une TextBox pendant qu'un bouton est appuyé. (donc qd on relache le bouton, le texte ne s'affiche plus).
 
Merci d'avance pour vos réponses.

Reply

Marsh Posté le 06-05-2008 à 12:57:26   

Reply

Marsh Posté le 06-05-2008 à 14:18:26    

tu surcharges la méthode ProcessCmdKey de ta form pour intercepter les évenements WM_KEYDOWN (touche pressée) et WM_KEYUP (touche relachée). A toi ensuite d'écrire et d'effacer ton TextBox en conséquence
 
exemple qui affiche un texte dans un textbox quand la touche ALT est enfoncée :

Code :
  1. const int WM_KEYDOWN = 0x100;
  2.  
  3. protected override bool ProcessCmdKey(ref Message msg, Keys keyData)    
  4.   {
  5.      if (msg.Msg == WM_KEYDOWN) // touche appuyée
  6.      {
  7.         switch(keyData)
  8.         {
  9.            case Keys.Alt:    
  10.               xplorTextBox.Text = "touche ALT enfoncée";
  11.               break;
  12.         }
  13.      }
  14.   }


Reply

Marsh Posté le 06-05-2008 à 14:38:43    

et si il s'agit d'un bouton que l'on enfonce grâce à un click de souris, c'est pareil ?

Reply

Marsh Posté le 06-05-2008 à 14:43:11    

quasiment...sauf que le message n'est pas WM_KEYUP ou WM_KEYDOWN, mais WM_MOUSEUP et WM_MOUSEDOWN, et que tu dois surcharger WndProc au lieu de ProcessCmdKey

Reply

Marsh Posté le 20-05-2008 à 00:49:58    

Bonsoir,
 
Au risque de poser une question bête, pourquoi ne pas simplement utiliser les evenements
MouseDown et MouseUp du bouton ?
 

Code :
  1. private void button1_MouseDown(object sender, MouseEventArgs e)
  2. {
  3.     this.textBox1.Text = "Texte à afficher";
  4. }
  5. private void button1_MouseUp(object sender, MouseEventArgs e)
  6. {
  7.     this.textBox1.Text = string.Empty;
  8. }
  9. this.button1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button1_MouseDown);
  10. this.button1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button1_MouseUp);


Message édité par x1800+ le 20-05-2008 à 00:50:35
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed