Auf Englisch lesen

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);

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);
        }
    }
}

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

Produkt Versionen
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

Siehe auch