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

Definição

Determina se a chave especificada é uma chave de entrada regular ou uma chave especial que exige o pré-processamento.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

Parâmetros

keyData
Keys Keys Keys Keys

Um dos valores de Keys.One of the Keys values.

Retornos

true se a chave especificada for uma chave de entrada regular; caso contrário, false.true if the specified key is a regular input key; otherwise, false.

Exemplos

O exemplo de código a seguir mostra como substituir o IsInputKey método para um TextBox controle.The following code example shows you how to override the IsInputKey method for a TextBox control. Neste exemplo, a TabTextBox classe manipula a tecla Tab.In this example, the TabTextBox class handles the TAB key. Quando o TabTextBox tiver o foco e o usuário pressionar a tecla Tab quatro espaços são adicionados no ponto de inserção de texto, substituindo qualquer texto selecionado.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. Por padrão, o TextBox controle manipula a tecla Tab movendo o foco de entrada para o próximo controle.By default, the TextBox control handles the TAB key by moving the input focus to the next control. Nesse caso, a tecla KeyPress nunca atinge a OnKeyDown substituição do método.In this case, the keypress never reaches the OnKeyDown method override. Para evitar esse comportamento padrão, a IsInputKey substituição do método true retorna quando o usuário pressiona a tecla Tab.To prevent this default behavior, the IsInputKey method override returns true when the user presses the TAB key. Para todos os outros pressionamentos de tecla IsInputKey , a substituição do método retorna o resultado da chamada da versão de classe base do método.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

Comentários

Chame o IsInputKey método para determinar se a chave especificada keyData pelo parâmetro é uma chave de entrada que o controle deseja.Call the IsInputKey method to determine whether the key specified by the keyData parameter is an input key that the control wants. Esse método é chamado durante o pré-processamento da mensagem de janela para determinar se a chave de entrada especificada deve ser pré-processado ou enviada diretamente para o controle.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 retornartrue, a chave especificada será enviada diretamente para o controle.If IsInputKey returns true, the specified key is sent directly to the control. Se IsInputKey for falseretornado, a chave especificada será pré-processado e enviada somente para o controle se ela não for consumida pela fase de pré-processamento.If IsInputKey returns false, the specified key is preprocessed and only sent to the control if it is not consumed by the preprocessing phase. As chaves que são pré-processados incluem a guia, retornar, ESC e as teclas seta para cima, seta para baixo, seta para a esquerda e seta para a direita.Keys that are preprocessed include the TAB, RETURN, ESC, and the UP ARROW, DOWN ARROW, LEFT ARROW, and RIGHT ARROW keys.

Segurança

UIPermission
para todas as janelas que herdam classes para chamar esse método.for all windows for inheriting classes to call this method. Enumeração associada: AllWindows valor de UIPermissionWindow.Associated enumeration: AllWindows value of UIPermissionWindow.

Aplica-se a

Veja também