Control.IsInputKey(Keys) Methode

Definition

Bestimmt, ob der angegebene Schlüssel ein regulärer Eingabeschlüssel oder ein besonderer Schlüssel ist, der eine Vorverarbeitung erfordert.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

Parameter

keyData
Keys

Einer der Keys-Werte.One of the Keys values.

Gibt zurück

true, wenn die angegebene Taste eine normale Taste ist, andernfalls false.true if the specified key is a regular input key; otherwise, false.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie Sie die IsInputKey-Methode für ein TextBox-Steuerelement überschreiben.The following code example shows you how to override the IsInputKey method for a TextBox control. In diesem Beispiel behandelt die TabTextBox-Klasse die Tab-Taste.In this example, the TabTextBox class handles the TAB key. Wenn das TabTextBox den Fokus hat und der Benutzer die Tab-Taste drückt, werden an der Text Einfügemarke vier Leerzeichen hinzugefügt, wobei der ausgewählte Text ersetzt wird.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. Standardmäßig verarbeitet das TextBox-Steuerelement die Tab-Taste, indem der Eingabefokus auf das nächste Steuerelement verschoben wird.By default, the TextBox control handles the TAB key by moving the input focus to the next control. In diesem Fall erreicht das KeyPress niemals den OnKeyDown Methoden Überschreibung.In this case, the keypress never reaches the OnKeyDown method override. Um dieses Standardverhalten zu verhindern, gibt die IsInputKey Methoden Überschreibung true zurück, wenn der Benutzer die Tab-Taste drückt.To prevent this default behavior, the IsInputKey method override returns true when the user presses the TAB key. Für alle anderen Tastatureingaben gibt die IsInputKey Methoden Überschreibung das Ergebnis des Aufruf der Basisklassen Version der Methode zurück.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

Hinweise

Ruft die IsInputKey-Methode auf, um zu bestimmen, ob der vom keyData-Parameter angegebene Schlüssel ein Eingabe Schlüssel ist, den das Steuerelement wünscht.Call the IsInputKey method to determine whether the key specified by the keyData parameter is an input key that the control wants. Diese Methode wird während der Vorverarbeitung von Fenster Meldungen aufgerufen, um zu bestimmen, ob der angegebene Eingabe Schlüssel vorverarbeitet oder direkt an das Steuerelement gesendet werden soll.This method is called during window message preprocessing to determine whether the specified input key should be preprocessed or sent directly to the control. Wenn IsInputKey truezurückgibt, wird der angegebene Schlüssel direkt an das Steuerelement gesendet.If IsInputKey returns true, the specified key is sent directly to the control. Wenn IsInputKey falsezurückgibt, wird der angegebene Schlüssel vorverarbeitet und nur an das Steuerelement gesendet, wenn er von der Vorverarbeitungs Phase nicht genutzt wird.If IsInputKey returns false, the specified key is preprocessed and only sent to the control if it is not consumed by the preprocessing phase. Zu den vorverarbeiteten Schlüsseln zählen Registerkarte, Rückgabe, ESC-Taste, Pfeil nach oben, Pfeil nach unten, Pfeil nach links und nach-rechts-Taste.Keys that are preprocessed include the TAB, RETURN, ESC, and the UP ARROW, DOWN ARROW, LEFT ARROW, and RIGHT ARROW keys.

Sicherheit

UIPermission
Für alle Fenster für erbende Klassen, um diese Methode aufzurufen.for all windows for inheriting classes to call this method. Zugehörige Enumeration: AllWindows Wert UIPermissionWindow.Associated enumeration: AllWindows value of UIPermissionWindow.

Gilt für:

Siehe auch