2008-10-06 12 views
6

J'ai essayé de remplacer WndProc, mais aucun message n'apparaît sur l'événement de collage.Comment faire pour contrôler Control-V dans l'application C#?

J'ai ensuite essayé de créer un filtre personnalisé et en utilisant la méthode PreFilterMessage j'ai pu attraper un message avec une valeur 257 (événement keyup), mais cela ne suffit pas ...

Répondre

17

Utilisation:

protected override void OnKeyDown(KeyEventArgs e) 
{ 
     if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control) 
     { 
      MessageBox.Show("Hello world"); 
     } 
     base.OnKeyDown(e); 
    } 

Marque Assurez-vous que votre formulaire KeyPreview = true.

+5

FYI - Ce n'est pas moi qui pose la question – Goran

+0

qu'en est-il un clic droit -> coller? – Haoest

+0

D'abord, vous devez implémenter une telle fonctionnalité (en utilisant le menu contextuel, je suppose). Vous auriez le contrôle total de toute façon – Goran

2

Vous pouvez le faire par:

  • Intercepter les touches Ctrl + V dans KeyDown (ou KeyUp) de votre formulaire
  • Création d'un menu dans votre formulaire qui contient une option Coller qui a les touches Ctrl + V raccourci (ce serait peut-être mieux car les utilisateurs recherchent les options)
  • Intercepter le message KEYDOWN comme vous l'avez décrit dans la question et vérifier si vous appuyez sur Ctrl à ce moment-là (je pense que c'est le plus difficile de tous) .

Personnellement, j'utiliserais une option de menu.

Questions connexes