C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 127 を表示中)
■75639 / )  フォーム上でのKeyDownの補足
□投稿者/ フォックス (1回)-(2015/04/17(Fri) 11:29:57)

分類:[VB.NET/VB2005 以降] 

VB2008を使用しています。

あるWindowsフォーム上でCtrl+指定キーを押すと
指定した処理が行われるようにしたいと思っています。
(もしかしたらAlt+指定キーにするかも知れません。)

ただし、このフォーム上のコントロールにフォーカスがあるためか、
FormのKeyDownまたはPreviewKeyDownイベントの補足ができません。

このフォームには、以下のコントロールが配置されています。
Form上…タブコントロールとボタン2つ
タブコントロール上…タブページが4つ
各タブページ上…DataGridViewが1つとボタンが3つ

例えば、任意のDataGridView上にフォーカスがある場合、
このDataGridViewのPreviewKeyDownイベントでキー押下を補足することができましたが、
実際にはどこにフォーカスがあるか分からないので、
このフォーム上のすべてのコントロールに対して
PreviewKeyDownイベントハンドラを設定する必要があるのでしょうか?

もしその必要がある場合、AddHandlerで動的にハンドラを設定することが、
今後のメンテナンスを考えた場合においても楽だと思いますが、
フォーム上のすべてのコントロールのリストを取得するにはどうすればいいのでしょうか?
(Form1.Controlsコレクションは、タブコントロールやPanelのような
コンテナ上のコントロールは含まれないのですよね?)
返信 編集キー/


管理者用

- Child Tree -