2013年10月5日土曜日

Windows Forms で Tab キー入力をイベント処理する

Windows Forms では、ユーザー コントロールに対する様々なキー入力をイベント ハンドルすることができますが、Tab キーはフォームレベルで管理されているためユーザー コントロール レベルではイベント が発生しません。ユーザー コントロール上で Tab キー入力をハンドルするには、ProcessCmdKey をオーバーライドします。

TextBox の場合:
class MyTextBox : TextBox
{
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData == Keys.Tab)
        {
            // ここにロジックを実装
            Debug.WriteLine("Tab が押されました。");
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }
}


Control.ProcessCmdKey メソッド

0 件のコメント:

コメントを投稿