Partager via


Control.IsInputKey(Keys) Méthode

Définition

Détermine si la touche spécifiée est une touche de saisie normale ou une touche spéciale nécessitant un prétraitement.

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 de l'objet Keys.

Retours

Boolean

true si la touche spécifiée est une touche de saisie standard ; sinon, false.

Exemples

L’exemple de code suivant montre comment remplacer la IsInputKey méthode d’un TextBox contrôle. Dans cet exemple, la TabTextBox classe gère la touche TAB. Lorsque le TabTextBox focus est activé et que l’utilisateur appuie sur la touche TAB, quatre espaces sont ajoutés au point d’insertion de texte, en remplaçant tout texte sélectionné. Par défaut, le TextBox contrôle gère la touche TAB en déplaçant le focus d’entrée vers le contrôle suivant. Dans ce cas, la touche keypress n’atteint jamais la substitution de OnKeyDown méthode. Pour empêcher ce comportement par défaut, la IsInputKey substitution de méthode retourne true lorsque l’utilisateur appuie sur la touche TAB. Pour toutes les autres touches, la IsInputKey substitution de méthode retourne le résultat de l’appel de la version de classe de base de la méthode.

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 IsInputKey méthode pour déterminer si la clé spécifiée par le keyData paramètre est une clé d’entrée souhaitée par le contrôle. Cette méthode est appelée pendant le prétraitement du message de fenêtre pour déterminer si la clé d’entrée spécifiée doit être prétraite ou envoyée directement au contrôle. Si IsInputKey elle est retournée true, la clé spécifiée est envoyée directement au contrôle. Si IsInputKey elle est retournée false, la clé spécifiée est prétraite et envoyée uniquement au contrôle s’il n’est pas consommé par la phase de prétraitement. Les touches prétraitées incluent les touches Tab, RETURN, Échap et Haut, Bas, Flèche gauche et Flèche droite.

S’applique à

Voir aussi