Control.IsInputKey(Keys) Méthode

Définition

Détermine si la clé spécifiée est une clé d'entrée standard ou une clé spéciale qui requiert un prétraitement.Determines whether the specified key is a regular input key or a special key that requires preprocessing.

protected:
 virtual bool IsInputKey(System::Windows::Forms::Keys keyData);
protected virtual bool IsInputKey (System.Windows.Forms.Keys keyData);
abstract member IsInputKey : System.Windows.Forms.Keys -> bool
override this.IsInputKey : System.Windows.Forms.Keys -> bool
Protected Overridable Function IsInputKey (keyData As Keys) As Boolean

Paramètres

keyData
Keys

Une des valeurs Keys.One of the Keys values.

Retours

true si la touche spécifiée est une touche de saisie standard ; sinon, false.true if the specified key is a regular input key; otherwise, false.

Exemples

L’exemple de code suivant montre comment substituer la méthode IsInputKey pour un contrôle TextBox.The following code example shows you how to override the IsInputKey method for a TextBox control. Dans cet exemple, la classe TabTextBox gère la touche TAB.In this example, the TabTextBox class handles the TAB key. Lorsque l' TabTextBox a le focus et que l’utilisateur appuie sur la touche TAB, quatre espaces sont ajoutés au point d’insertion de texte, remplaçant tout texte sélectionné.When the TabTextBox has the focus and the user presses the TAB key four spaces are added at the text insertion point, replacing any selected text. Par défaut, le contrôle TextBox gère la touche TAB en déplaçant le focus d’entrée vers le contrôle suivant.By default, the TextBox control handles the TAB key by moving the input focus to the next control. Dans ce cas, la touche de pression n’atteint jamais la substitution de la méthode OnKeyDown.In this case, the keypress never reaches the OnKeyDown method override. Pour empêcher ce comportement par défaut, la substitution de la méthode IsInputKey retourne true lorsque l’utilisateur appuie sur la touche TAB.To prevent this default behavior, the IsInputKey method override returns true when the user presses the TAB key. Pour toutes les autres touches, la IsInputKey substitution de méthode retourne le résultat de l’appel de la version de la classe de base de la méthode.For all other keypresses, the IsInputKey method override returns the result of calling the base-class version of the method.

using System.Windows.Forms;

public class Form1 : Form
{
    public Form1()
    {
        FlowLayoutPanel panel = new FlowLayoutPanel();

        TabTextBox tabTextBox1 = new TabTextBox();
        tabTextBox1.Text = "TabTextBox";
        panel.Controls.Add(tabTextBox1);

        TextBox textBox1 = new TextBox();
        textBox1.Text = "Normal TextBox";
        panel.Controls.Add(textBox1);

        this.Controls.Add(panel);
    }
}

class TabTextBox : TextBox
{
    protected override bool IsInputKey(Keys keyData)
    {
        if (keyData == Keys.Tab)
        {
            return true;
        }
        else
        {
            return base.IsInputKey(keyData);
        }
    }

    protected override void OnKeyDown(KeyEventArgs e)
    {
        if (e.KeyData == Keys.Tab)
        {
            this.SelectedText = "    ";                
        }
        else
        {
            base.OnKeyDown(e);
        }
    }
}
Imports System.Windows.Forms

Public Class Form1
    Inherits Form

    Public Sub New()

        Dim panel As New FlowLayoutPanel()

        Dim tabTextBox1 As New TabTextBox()
        tabTextBox1.Text = "TabTextBox"
        panel.Controls.Add(tabTextBox1)

        Dim textBox1 As New TextBox()
        textBox1.Text = "Normal TextBox"
        panel.Controls.Add(textBox1)

        Me.Controls.Add(panel)

    End Sub

End Class

Class TabTextBox
    Inherits TextBox

    Protected Overrides Function IsInputKey( _
        ByVal keyData As System.Windows.Forms.Keys) As Boolean

        If keyData = Keys.Tab Then
            Return True
        Else
            Return MyBase.IsInputKey(keyData)
        End If

    End Function

    Protected Overrides Sub OnKeyDown( _
        ByVal e As System.Windows.Forms.KeyEventArgs)

        If e.KeyData = Keys.Tab Then
            Me.SelectedText = "    "
        Else
            MyBase.OnKeyDown(e)
        End If

    End Sub

End Class

Remarques

Appelez la méthode IsInputKey pour déterminer si la clé spécifiée par le paramètre keyData est une touche de saisie que le contrôle souhaite.Call the IsInputKey method to determine whether the key specified by the keyData parameter is an input key that the control wants. Cette méthode est appelée pendant le prétraitement des messages de fenêtre pour déterminer si la clé d’entrée spécifiée doit être prétraitée ou envoyée directement au contrôle.This method is called during window message preprocessing to determine whether the specified input key should be preprocessed or sent directly to the control. Si IsInputKey retourne true, la clé spécifiée est envoyée directement au contrôle.If IsInputKey returns true, the specified key is sent directly to the control. Si IsInputKey retourne false, la clé spécifiée est prétraitée et envoyée uniquement au contrôle si elle n’est pas consommée par la phase de prétraitement.If IsInputKey returns false, the specified key is preprocessed and only sent to the control if it is not consumed by the preprocessing phase. Les clés prétraitées incluent les touches TAB, retour, Echap et flèche haut, flèche bas, flèche gauche et flèche droite.Keys that are preprocessed include the TAB, RETURN, ESC, and the UP ARROW, DOWN ARROW, LEFT ARROW, and RIGHT ARROW keys.

S’applique à

Voir aussi