Control.IsInputKey(Keys) Metodo

Definizione

Determina se il tasto specificato è un normale tasto di input o un tasto speciale che richiede una pre-elaborazione.

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

Parametri

keyData
Keys

Uno dei valori di Keys.

Restituisce

true se il tasto specificato è un normale tasto di input; in caso contrario, false.

Esempio

Nell'esempio di codice seguente viene illustrato come eseguire l'override del IsInputKey metodo per un TextBox controllo . In questo esempio la TabTextBox classe gestisce il tasto TAB. Quando ha TabTextBox lo stato attivo e l'utente preme il tasto TAB quattro spazi vengono aggiunti al punto di inserimento del testo, sostituendo qualsiasi testo selezionato. Per impostazione predefinita, il TextBox controllo gestisce il tasto TAB spostando lo stato attivo dell'input al controllo successivo. In questo caso, il tasto keypress non raggiunge mai l'override del OnKeyDown metodo. Per evitare questo comportamento predefinito, l'override del IsInputKey metodo restituisce true quando l'utente preme il tasto TAB. Per tutte le altre chiavi, l'override del IsInputKey metodo restituisce il risultato della chiamata alla versione della classe base del metodo .

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

Commenti

Chiamare il IsInputKey metodo per determinare se la chiave specificata dal keyData parametro è una chiave di input desiderata dal controllo. Questo metodo viene chiamato durante la pre-elaborazione del messaggio della finestra per determinare se la chiave di input specificata deve essere pre-elaborata o inviata direttamente al controllo. Se IsInputKey restituisce true, la chiave specificata viene inviata direttamente al controllo . Se IsInputKey restituisce false, la chiave specificata viene pre-elaborata e inviata al controllo solo se non viene utilizzata dalla fase di pre-elaborazione. I tasti pre-elaborati includono i tasti TAB, RETURN, ESC e FRECCIA SU, FRECCIA GIÙ, FRECCIA SINISTRA e FRECCIA DESTRA.

Si applica a

Vedi anche