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

定義

指定されているキーが、通常の入力キーであるか、またはプリプロセスを必要とする特殊なキーであるかを確認します。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 Keys Keys

Keys 値のいずれか 1 つ。One of the Keys values.

戻り値

指定されているキーが通常の入力キーである場合は true。それ以外の場合は falsetrue if the specified key is a regular input key; otherwise, false.

次のコード例は、オーバーライドする方法を示します、IsInputKeyのメソッドをTextBoxコントロール。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にフォーカスがある、ユーザーは、選択したテキストを置き換えながらという 4 つの空白を追加して、テキスト挿入ポイントで TAB キーを押した。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. ここで、keypress に到達しません、OnKeyDownメソッドのオーバーライド。In this case, the keypress never reaches the OnKeyDown method override. この既定の動作を防ぐために、IsInputKeyメソッドのオーバーライドtrueユーザーが TAB キーを押すとします。To prevent this default behavior, the IsInputKey method override returns true when the user presses the TAB key. その他のすべてのキープレス、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.

適用対象

こちらもご覧ください