Control.IsInputKey(Keys) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定されているキーが、通常の入力キーであるか、またはプリプロセスを必要とする特殊なキーであるかを確認します。
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
パラメーター
戻り値
指定されているキーが通常の入力キーである場合は true
。それ以外の場合は false
。
例
次のコード例は、コントロールのメソッドをオーバーライドする IsInputKey 方法を TextBox 示しています。 この例では、クラスは TabTextBox
TAB キーを処理します。 フォーカスがあり TabTextBox
、ユーザーが Tab キーを押すと、テキストの挿入ポイントに 4 つのスペースが追加され、選択したテキストが置き換えられます。 既定では、コントロールは TextBox 、入力フォーカスを次のコントロールに移動することで TAB キーを処理します。 この場合、keypress はメソッドのオーバーライドに OnKeyDown 到達しません。 この既定の動作を回避するために、ユーザーが IsInputKey TAB キーを押すと、メソッドオーバーライドが返されます true
。 その他のすべてのキーを押すと、メソッドオーバーライドは IsInputKey 、メソッドの基底クラス バージョンを呼び出した結果を返します。
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
指定されたキーが、コントロールが必要とする入力キーであるかどうかを判断します。 このメソッドは、ウィンドウ メッセージの前処理中に呼び出され、指定した入力キーを前処理するか、コントロールに直接送信するかを判断します。 返されたtrue
場合IsInputKey、指定したキーがコントロールに直接送信されます。 戻り値がfalse
返された場合IsInputKey、指定したキーは前処理され、前処理フェーズで使用されない場合にのみコントロールに送信されます。 前処理されたキーには、TAB キー、RETURN キー、ESC キー、上方向キー、下方向キー、左方向キー、および右方向キーが含まれます。