Control.IsInputKey(Keys) Methode

Definitie

Bepaalt of de opgegeven sleutel een reguliere invoersleutel of een speciale sleutel is waarvoor vooraf moet worden verwerkt.

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

Parameters

keyData
Keys

Een van de Keys waarden.

Retouren

true als de opgegeven sleutel een gewone invoersleutel is; anders, false.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de IsInputKey methode voor een TextBox besturingselement overschrijft. In dit voorbeeld verwerkt de TabTextBox klasse de TAB-toets. Wanneer de TabTextBox focus heeft en de gebruiker op tabtoets drukt, worden er vier spaties toegevoegd aan de invoegpositie van de tekst, waarbij alle geselecteerde tekst wordt vervangen. Standaard verwerkt het TextBox besturingselement de TAB-toets door de invoerfocus naar het volgende besturingselement te verplaatsen. In dit geval bereikt de toetsdruk nooit de OnKeyDown methode overschrijven. Om dit standaardgedrag te voorkomen, wordt de IsInputKey methode overschrijven geretourneerd true wanneer de gebruiker op de Tab-toets drukt. Voor alle andere toetsdrukken retourneert de IsInputKey methode-onderdrukking het resultaat van het aanroepen van de basisklasseversie van de methode.

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

Opmerkingen

Roep de IsInputKey methode aan om te bepalen of de sleutel die is opgegeven door de keyData parameter een invoersleutel is die het besturingselement wil. Deze methode wordt aangeroepen tijdens het vooraf verwerken van vensterberichten om te bepalen of de opgegeven invoersleutel vooraf moet worden verwerkt of rechtstreeks naar het besturingselement moet worden verzonden. Als IsInputKey deze retourneert, wordt de opgegeven sleutel rechtstreeks naar het besturingselement verzonden true. Als IsInputKey deze retourneert false, wordt de opgegeven sleutel vooraf verwerkt en alleen verzonden naar het besturingselement als deze niet wordt gebruikt door de voorverwerkingsfase. Toetsen die vooraf zijn verwerkt, zijn onder andere tab, RETURN, ESC en de toetsen Pijl-omhoog, Pijl-omlaag, Pijl-links en Pijl-rechts.

Van toepassing op

Zie ook