Control.IsInputKey(Keys) 메서드

정의

지정된 키가 일반 입력 키인지 또는 전처리가 필요한 특수 키인지를 확인합니다.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

매개 변수

keyData
Keys

Keys 값 중 하나입니다.One of the Keys values.

반환

지정된 키가 일반 입력 키이면 true이고, 그렇지 않으면 false입니다.true if the specified key is a regular input key; otherwise, false.

예제

다음 코드 예제에서는 TextBox 컨트롤에 대해 IsInputKey 메서드를 재정의 하는 방법을 보여 줍니다.The following code example shows you how to override the IsInputKey method for a TextBox control. 이 예제에서 TabTextBox 클래스는 TAB 키를 처리 합니다.In this example, the TabTextBox class handles the TAB key. TabTextBox에 포커스가 있을 때 사용자가 TAB 키를 누르면 텍스트 삽입 지점에 4 개의 공백이 추가 되어 선택한 텍스트가 바뀝니다.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. 기본적으로 TextBox 컨트롤은 입력 포커스를 다음 컨트롤로 이동 하 여 TAB 키를 처리 합니다.By default, the TextBox control handles the TAB key by moving the input focus to the next control. 이 경우 키가 OnKeyDown 메서드 재정의에 도달 하지 않습니다.In this case, the keypress never reaches the OnKeyDown method override. 이 기본 동작을 방지 하기 위해 사용자가 TAB 키를 누를 때 IsInputKey 메서드 재정의가 true을 반환 합니다.To prevent this default behavior, the IsInputKey method override returns true when the user presses the TAB key. 다른 모든 keypresses의 경우 IsInputKey 메서드 재정의는 메서드의 기본 클래스 버전 호출 결과를 반환 합니다.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

설명

IsInputKey 메서드를 호출 하 여 keyData 매개 변수로 지정 된 키가 컨트롤이 원하는 입력 키인지 여부를 확인 합니다.Call the IsInputKey method to determine whether the key specified by the keyData parameter is an input key that the control wants. 이 메서드는 지정 된 입력 키를 전처리 하거나 컨트롤로 직접 보낼지 여부를 결정 하기 위해 창 메시지 전처리 중에 호출 됩니다.This method is called during window message preprocessing to determine whether the specified input key should be preprocessed or sent directly to the control. IsInputKey에서 true를 반환 하는 경우 지정 된 키가 컨트롤에 직접 전송 됩니다.If IsInputKey returns true, the specified key is sent directly to the control. IsInputKey에서 false를 반환 하는 경우 지정 된 키가 전처리 되 고 전처리 단계에서 사용 되지 않는 경우에만 컨트롤에 전송 됩니다.If IsInputKey returns false, the specified key is preprocessed and only sent to the control if it is not consumed by the preprocessing phase. 전처리 된 키는 탭, 반환, ESC, 위쪽 화살표, 아래쪽 화살표, 왼쪽 화살표 및 오른쪽 화살표 키를 포함 합니다.Keys that are preprocessed include the TAB, RETURN, ESC, and the UP ARROW, DOWN ARROW, LEFT ARROW, and RIGHT ARROW keys.

보안

UIPermission
이 메서드를 호출 하는 클래스 상속을 위한 모든 창입니다.for all windows for inheriting classes to call this method. 연관 된 열거형: AllWindows 의 값 UIPermissionWindow합니다.Associated enumeration: AllWindows value of UIPermissionWindow.

적용 대상

추가 정보