Freigeben über


Control.IsInputKey(Keys) Methode

Definition

Bestimmt, ob es sich bei der angegebenen Taste um eine normale Eingabetaste handelt oder um eine Sondertaste, für die eine Vorverarbeitung erforderlich ist.

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.

Gibt zurück

Boolean

true, wenn die angegebene Taste eine normale Taste ist, andernfalls false.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie Sie die IsInputKey Methode für ein TextBox Steuerelement außer Kraft setzen. In diesem Beispiel behandelt die TabTextBox Klasse die TAB-TASTE. Wenn der TabTextBox Fokus liegt und der Benutzer die TAB-TASTE drückt, werden vier Leerzeichen an der Texteinfügemarke hinzugefügt, indem alle markierten Texte ersetzt werden. Standardmäßig behandelt das TextBox Steuerelement die TAB-TASTE, indem der Eingabefokus auf das nächste Steuerelement verschoben wird. In diesem Fall erreicht die Keypress niemals die Außerkraftsetzung der OnKeyDown Methode. Um dieses Standardverhalten zu verhindern, gibt true die IsInputKey Methode außer Kraft, wenn der Benutzer die TAB-TASTE drückt. Für alle anderen Keypressen gibt die IsInputKey Methode außer Kraft, das Ergebnis des Aufrufs der Basisklassenversion der Methode zurück.

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

Rufen Sie die IsInputKey Methode auf, um zu bestimmen, ob der vom keyData Parameter angegebene Schlüssel ein Eingabeschlüssel ist, den das Steuerelement wünscht. Diese Methode wird während der Vorverarbeitung von Fensternachrichten aufgerufen, um zu bestimmen, ob der angegebene Eingabeschlüssel vorverarbeitet oder direkt an das Steuerelement gesendet werden soll. Wenn IsInputKey der Wert zurückgegeben truewird, wird der angegebene Schlüssel direkt an das Steuerelement gesendet. Wenn IsInputKey der falseangegebene Schlüssel zurückgegeben wird, wird der angegebene Schlüssel vorverarbeitet und nur an das Steuerelement gesendet, wenn er nicht von der Vorverarbeitungsphase verwendet wird. Tasten, die vorverarbeitet werden, umfassen TAB-, RÜCKGABE-, ESC- und NACH-OBEN-, NACH-UNTEN-, NACH-LINKS- und NACH-RECHTS-TASTE.

Gilt für

Siehe auch