【.NET】Enterによるフォーカス移動とTabなど特殊キーの制御

クライアントアプリの開発でキーボードの入力を制御するためのメモ。

環境は.NET Framework 2.0, Visual Studio 2005, VB.NET

Enterキーでタブ(Tab)キーみたいにフォーカス移動するのは@ITの記事を参考にSelectNextControlを使えばできる。

ただ記事で紹介しているフォームのKeyDownをhandleするやり方は特殊キー([PageUp][PageDown][Esc][Tab][カーソルキー])の入力をhandleしてくれないこともあるみたい。

そんなときは別の@ITの記事を参考にProcessDialogKeyをOverrideすればいいみたい。紹介されているサンプルコードをフォームのクラスにそのまま記述すればO.K.

特殊キーの動きを自作するには

Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean
  Return True
End Function

としといて、フォームのKeyDownイベントで頑張る。

KeyDown, KeyUp, KeyPressの違いについてはMSDNで。

名古屋のおもしろ会社エクスブリッジ