Control.IsInputKey(Keys) Control.IsInputKey(Keys) Control.IsInputKey(Keys) Control.IsInputKey(Keys) Method

Definición

Determina si la tecla especificada es una tecla de entrada normal o una tecla especial que requiere preprocesamiento.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

Parámetros

keyData
Keys Keys Keys Keys

Uno de los valores de Keys.One of the Keys values.

Devoluciones

true si la tecla especificada es una tecla de entrada normal; de lo contrario, false.true if the specified key is a regular input key; otherwise, false.

Ejemplos

En el ejemplo de código siguiente se muestra cómo invalidar el IsInputKey método para un TextBox control.The following code example shows you how to override the IsInputKey method for a TextBox control. En este ejemplo, el TabTextBox clase controla la tecla TAB.In this example, the TabTextBox class handles the TAB key. Cuando el TabTextBox tiene el foco y el usuario presiona la tecla TAB se agregan cuatro espacios en el punto de inserción de texto, reemplazando el texto seleccionado.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. De forma predeterminada, el TextBox control administra la tecla TAB al mover el foco de entrada al siguiente control.By default, the TextBox control handles the TAB key by moving the input focus to the next control. En este caso, nunca alcanza el keypress el OnKeyDown invalidación del método.In this case, the keypress never reaches the OnKeyDown method override. Para evitar este comportamiento predeterminado, el IsInputKey método invalidar devuelve true cuando el usuario presiona la tecla TAB.To prevent this default behavior, the IsInputKey method override returns true when the user presses the TAB key. Para todos los demás de pulsaciones de teclas, el IsInputKey invalidación del método devuelve el resultado de llamar a la versión de la clase base del método.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

Comentarios

Llame a la IsInputKey método para determinar si la clave especificada por el keyData parámetro es una tecla de entrada que solicita el control.Call the IsInputKey method to determine whether the key specified by the keyData parameter is an input key that the control wants. Este método se llama durante el preprocesamiento de mensajes de ventana para determinar si la clave de entrada especificada debe preprocesarse o enviarse directamente al control.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 devuelve true, la clave especificada se envía directamente al control.If IsInputKey returns true, the specified key is sent directly to the control. Si IsInputKey devuelve false, la clave especificada se preprocesa y sólo se envía al control si no se consume en la fase de preprocesamiento.If IsInputKey returns false, the specified key is preprocessed and only sent to the control if it is not consumed by the preprocessing phase. Las claves que previamente incluyen la ficha, si la devolución, ESC y las teclas de flecha arriba, flecha abajo, flecha izquierda y flecha derecha.Keys that are preprocessed include the TAB, RETURN, ESC, and the UP ARROW, DOWN ARROW, LEFT ARROW, and RIGHT ARROW keys.

Seguridad

UIPermission
para todas las ventanas para la herencia de clases para llamar a este método.for all windows for inheriting classes to call this method. Enumeración asociada: AllWindows valor UIPermissionWindow.Associated enumeration: AllWindows value of UIPermissionWindow.

Se aplica a

Consulte también: