Control.IsInputKey(Keys) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
Retours
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.