- - PR -
VB.NETでファンクションボタン制御
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-06 15:04
お世話になります。
環境:WindowsXP,VS 2005,VB .NET,SQLServer 今、F1からF12までのボタンのある画面を作成しています。 Form_KEYPRESSで、F1〜F12を実行するようにプログラミングしています。 画面には、テキストボックスがあり、それにフォーカスされた場合に F1からF12が実行されません。 どのように対応すれば、よいのでしょうか? | ||||||||
|
投稿日時: 2006-07-06 15:23
お世話になります。
検証していなくてすいませんが、ProcessDialogKey メソッドで取得できませんか? | ||||||||
|
投稿日時: 2006-07-06 15:41
深山さん、ありがとうございました!
ProcessDialogKey を使用したら実現できそうです! サンプルをみつけました。 Protected Overrides Function ProcessDialogKey( _ ByVal keyData As Keys) As Boolean If (keyData And Keys.KeyCode) = Keys.Tab Then 'Tabキーが押されているか調べる MessageBox.Show("Tabキーが押されました。") Return True End If Return MyBase.ProcessDialogKey(keyData) End Function ただ、オーバーライドについて調べたのですが、クラスを継承して、 カスタマイズすると認識しております。 もし、間違えていたらご指摘をお願いできますか? | ||||||||
|
投稿日時: 2006-07-06 16:00
ProcessDialogKey をオーバーライドするなら テキストボックスを継承したカスタムコントロールを作る必要がありますね。 ただ、ファンクションキーだったら普通に捕捉できませんか? フォームの KeyPreview = True も忘れずに | ||||||||
|
投稿日時: 2006-07-06 16:45
Form の方をオーバーライドしていたら、関係なかったりします... その前に、ProcessDialogKey メソッドでキーによる処理内容を書いてしまうのは、 お行儀が良くないかもしれませんね。
ですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-07-06 17:18
[quote]
じゃんぬねっとさんの書き込み (2006-07-06 16:45) より: Form の方をオーバーライドしていたら、関係なかったりします... その前に、ProcessDialogKey メソッドでキーによる処理内容を書いてしまうのは、 お行儀が良くないかもしれませんね。
うぁ、ご指摘ありがとうございます(汗 | ||||||||
|
投稿日時: 2006-07-06 18:02
誤解されているかもしれないので、一応書かせて頂きますが、 引用されている後半の 2 行は指摘ではなく、かるあさんへの同意ですよ。(=^-^) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1