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. にフォーカスがあり、ユーザーが TAB キーを押すと、テキスト挿入ポイントに4つのスペースが追加され、選択したテキストが置き換えられます。 TabTextBoxWhen 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. それ以外のすべての 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

注釈

メソッドを呼び出して、 keyDataパラメーターによって指定されたキーが、コントロールが必要とする入力キーであるかどうかを確認します。 IsInputKeyCall 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. IsInputKeytrue返す場合、指定されたキーはコントロールに直接送信されます。If IsInputKey returns true, the specified key is sent directly to the control. IsInputKeyfalse返す場合、指定されたキーは前処理され、プリプロセスフェーズで使用されていない場合にのみコントロールに送信されます。If IsInputKey returns false, the specified key is preprocessed and only sent to the control if it is not consumed by the preprocessing phase. プリプロセスされるキーには、TAB、RETURN、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.

適用対象

こちらもご覧ください