KeyEventArgs.Handled vs KeyEventArgs.SupressKeyPress

Quelle est la différence entre utiliser

e.Handled = true 

et

 e.SuppressKeyPress = true 

J’ai lu que SuppressKeyPress appelle e.Handled, mais est-ce que ça le fait?

Selon ce blog: Nouvelles API de clavier: KeyEventArgs.SuppressKeyPress :

Le problème est que “Handled” ne prend pas en charge les messages WM_CHAR en attente déjà créés dans la queue des messages. Le paramétrage de Handled = true n’empêche donc pas le déclenchement d’une opération KeyPress.

Afin de ne pas casser quelqu’un qui a actuellement e.Handled = true, nous avons dû append une nouvelle propriété appelée SuppressKeyChar. Si nous allions dans l’autre sens, si “manipuler” une touche au clavier commençait soudainement à fonctionner, nous risquions de casser les gens qui l’avaient accidentellement mis à la vérité.

Cela empêche simplement l’utilisateur de saisir toutes les occurrences de boutons en attente. Par exemple, dans une zone de texte, non seulement l’événement Handled est défini sur true, les entrées utilisateur sont supprimées et ne sont pas reflétées dans la zone de texte si vous tapez très rapidement et appuyez simultanément sur plusieurs boutons.