Control.IsInputKey(Keys) Control.IsInputKey(Keys) Control.IsInputKey(Keys) Control.IsInputKey(Keys) Method

Definizione

Determina se il tasto specificato è un normale tasto di input o un tasto speciale che richiede una pre-elaborazione.Determines whether the specified key is a regular input key or a special key that requires preprocessing.

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 Keys Keys Keys

Uno dei valori di Keys.One of the Keys values.

Restituisce

true se il tasto specificato è un normale tasto di input; in caso contrario, false.true if the specified key is a regular input key; otherwise, false.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come IsInputKey eseguire l'override TextBox del metodo per un controllo.The following code example shows you how to override the IsInputKey method for a TextBox control. In questo esempio TabTextBox la classe gestisce il tasto TAB.In this example, the TabTextBox class handles the TAB key. TabTextBox Quando ha lo stato attivo e l'utente preme il tasto TAB quattro spazi vengono aggiunti al punto di inserimento del testo, sostituendo il testo selezionato.When the TabTextBox has the focus and the user presses the TAB key four spaces are added at the text insertion point, replacing any selected text. Per impostazione predefinita, TextBox il controllo gestisce il tasto TAB spostando lo stato attivo per l'input sul controllo successivo.By default, the TextBox control handles the TAB key by moving the input focus to the next control. In questo caso, il KeyPress non raggiunge mai OnKeyDown l'override del metodo.In this case, the keypress never reaches the OnKeyDown method override. Per evitare questo comportamento predefinito, l' IsInputKey override del metodo true restituisce quando l'utente preme il tasto TAB.To prevent this default behavior, the IsInputKey method override returns true when the user presses the TAB key. Per tutti gli altri tasti di pressione, IsInputKey l'override del metodo restituisce il risultato della chiamata della versione della classe base del metodo.For all other keypresses, the IsInputKey method override returns the result of calling the base-class version of the method.

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 keyData dal parametro è un tasto di input desiderato dal controllo.Call the IsInputKey method to determine whether the key specified by the keyData parameter is an input key that the control wants. Questo metodo viene chiamato durante la pre-elaborazione dei messaggi della finestra per determinare se la chiave di input specificata deve essere pre-elaborata o inviata direttamente al controllo.This method is called during window message preprocessing to determine whether the specified input key should be preprocessed or sent directly to the control. Se IsInputKey restituiscetrue, la chiave specificata viene inviata direttamente al controllo.If IsInputKey returns true, the specified key is sent directly to the control. Se IsInputKey restituiscefalse, la chiave specificata viene pre-elaborata e inviata al controllo solo se non è utilizzata dalla fase di pre-elaborazione.If IsInputKey returns false, the specified key is preprocessed and only sent to the control if it is not consumed by the preprocessing phase. Le chiavi pre-elaborate includono i tasti TAB, RETURN, ESC e freccia su, freccia giù, freccia sinistra e freccia destra.Keys that are preprocessed include the TAB, RETURN, ESC, and the UP ARROW, DOWN ARROW, LEFT ARROW, and RIGHT ARROW keys.

Sicurezza

UIPermission
per tutte le finestre per le classi che ereditano per chiamare questo metodo.for all windows for inheriting classes to call this method. Enumerazione associata: AllWindows valore di UIPermissionWindow.Associated enumeration: AllWindows value of UIPermissionWindow.

Si applica a

Vedi anche