Sdílet prostřednictvím


Control.IsInputKey(Keys) Metoda

Definice

Určuje, zda je zadaný klíč běžným vstupním klíčem nebo speciálním klíčem, který vyžaduje předběžné zpracování.

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

Parametry

keyData
Keys

Jedna z Keys hodnot.

Návraty

Boolean

truepokud je zadaný klíč běžným vstupním klíčem; v opačném případě . false

Příklady

Následující příklad kódu ukazuje, jak přepsat metodu IsInputKey TextBox ovládacího prvku. V tomto příkladu TabTextBox třída zpracovává klávesu TAB. TabTextBox Když má fokus a uživatel stiskne klávesu TAB, přidají se čtyři mezery v kurzoru textu a nahradí libovolný vybraný text. Ve výchozím nastavení TextBox ovládací prvek zpracovává klávesu TAB přesunutím vstupního fokusu na další ovládací prvek. V tomto případě keypress nikdy nedosáhne přepsání OnKeyDown metody. Pokud chcete zabránit tomuto výchozímu chování, vrátí true se přepsání metody, IsInputKey když uživatel stiskne klávesu TAB. U všech ostatních stisků IsInputKey klíčů vrátí přepsání metody výsledek volání verze základní třídy metody.

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

Poznámky

IsInputKey Volání metody k určení, zda klíč zadaný keyData parametrem je vstupní klíč, který ovládací prvek chce. Tato metoda se volá při předběžném zpracování zpráv okna, aby bylo možné určit, zda má být zadaný vstupní klíč předem zpracován nebo odeslán přímo do ovládacího prvku. Pokud IsInputKey se vrátí true, zadaný klíč se odešle přímo do ovládacího prvku. Pokud IsInputKey se vrátí false, zadaný klíč je předem zpracován a odesílá se do ovládacího prvku pouze v případě, že není spotřebován fází předběžného zpracování. Mezi předem zpracovávané klávesy patří klávesy TAB, RETURN, ESC a ŠIPKA NAHORU, ŠIPKA DOLŮ, ŠIPKA VLEVO a ŠIPKA VPRAVO.

Platí pro

Viz také