KeyEventHandler, délégué
Mise à jour : novembre 2007
Espace de noms : System.Windows.FormsAssembly : System.Windows.Forms (dans System.Windows.Forms.dll)
/** @delegate */ public delegate void KeyEventHandler( Object sender, KeyEventArgs e )
JScript ne prend pas en charge les délégués.
Paramètres
- sender
- Type : System.Object
Source de l'événement.
- e
- Type : System.Windows.Forms.KeyEventArgs
KeyEventArgs qui contient les données d'événement.
Lorsque vous créez un délégué KeyEventHandler, vous identifiez la méthode qui gérera l'événement. Pour associer l'événement au gestionnaire d'événements, ajoutez une instance du délégué à l'événement. Le gestionnaire d'événements est appelé chaque fois que l'événement se produit, sauf si vous enlevez le délégué. Pour plus d'informations sur la gestion des événements avec des délégués, consultez Événements et délégués.
private void treeView1_KeyDown(object sender, KeyEventArgs e) { /* If the 'Alt' and 'E' keys are pressed, * allow the user to edit the TreeNode label. */ if(e.Alt && e.KeyCode == Keys.E) { treeView1.LabelEdit = true; // If there is a TreeNode under the mose cursor, begin editing. TreeNode editNode = treeView1.GetNodeAt( treeView1.PointToClient(Control.MousePosition)); if(editNode != null) { editNode.BeginEdit(); } } } private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) { // Disable the ability to edit the TreeNode labels. treeView1.LabelEdit = false; }
private void treeView1_KeyDown(Object sender, KeyEventArgs e)
{
/* If the 'Alt' and 'E' keys are pressed,
allow the user to edit the TreeNode label.
*/
if (e.get_Alt() && e.get_KeyCode() == Keys.E) {
treeView1.set_LabelEdit(true);
// If there is a TreeNode under the mose cursor, begin editing.
TreeNode editNode = treeView1.GetNodeAt(treeView1.PointToClient(
Control.get_MousePosition()));
if (editNode != null) {
editNode.BeginEdit();
}
}
} //treeView1_KeyDown
private void treeView1_AfterLabelEdit(Object sender,
NodeLabelEditEventArgs e)
{
// Disable the ability to edit the TreeNode labels.
treeView1.set_LabelEdit(false);
} //treeView1_AfterLabelEdit
// Boolean flag used to determine when a character other than a number is entered. private bool nonNumberEntered = false; // Handle the KeyDown event to determine the type of character entered into the control. private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { // Initialize the flag to false. nonNumberEntered = false; // Determine whether the keystroke is a number from the top of the keyboard. if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9) { // Determine whether the keystroke is a number from the keypad. if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9) { // Determine whether the keystroke is a backspace. if(e.KeyCode != Keys.Back) { // A non-numerical keystroke was pressed. // Set the flag to true and evaluate in KeyPress event. nonNumberEntered = true; } } } } // This event occurs after the KeyDown event and can be used to prevent // characters from entering the control. private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { // Check for the flag being set in the KeyDown event. if (nonNumberEntered == true) { // Stop the character from being entered into the control since it is non-numerical. e.Handled = true; } }
// Boolean flag used to determine when a character other than a number
// is entered.
private boolean nonNumberEntered = false;
// Handle the KeyDown event to determine the type of character entered
// into the control.
private void textBox1_KeyDown(Object sender,
System.Windows.Forms.KeyEventArgs e)
{
// Initialize the flag to false.
nonNumberEntered = false;
// Determine whether the keystroke is a number from the top of the
// keyboard.
if ((e.get_KeyCode().CompareTo(Keys.D0)) < 0
|| (e.get_KeyCode().CompareTo(Keys.D9) > 0)) {
// Determine whether the keystroke is a number from the keypad.
if ((e.get_KeyCode().CompareTo(Keys.NumPad0) < 0
|| (e.get_KeyCode().CompareTo(Keys.NumPad9)) > 0)) {
// Determine whether the keystroke is a backspace.
if (!(e.get_KeyCode().Equals(Keys.Back))) {
// A non-numerical keystroke was pressed.
// Set the flag to true and evaluate in KeyPress event.
nonNumberEntered = true;
}
}
}
} //textBox1_KeyDown
// This event occurs after the KeyDown event and can be used to prevent
// characters from entering the control.
private void textBox1_KeyPress(Object sender, System.Windows.Forms.
KeyPressEventArgs e)
{
// Check for the flag being set in the KeyDown event.
if (nonNumberEntered == true) {
// Stop the character from being entered into the control since
// it is non-numerical.
e.set_Handled(true);
}
} //textBox1_KeyPress
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.