- - PR -
矢印キーイベントの取得(Web・Win共に)について
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-08-03 14:27
VB.NETでのWeb・Winフォームでの
矢印キーイベントの取得の仕方がわからず困っております。 WebのほうはJavaScriptでの取得になると思いますが 実装方法がわからず・・・。 WinのほうもKeyDown等でのイベントが取得できないので 実装方法が分かりません・・。 どちらもメニュー画面として作成しておりますが 矢印キーにてフォーカス移動と移動の制限を実現したいのです。 どちらでも構いませんので実装方法を ご教授お願いします。 | ||||||||||||
|
投稿日時: 2004-08-03 15:07
Windowsフォームの方に関しては、Control.IsInputKey()でtrueを返してはどうでしょう。
通常のキーとして処理されると思います。(試してませんが) http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontrolclassisinputkeytopic.asp | ||||||||||||
|
投稿日時: 2004-08-03 15:55
ご返答ありがとうございます。
早速 IsInputKeyメソッドを試してみました。 Click,GotFocus,LostFocusイベントで試してみたのですが 値をTrueで返してはくれませんでした。 Private Sub Button1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1_GotFocus If IsInputKey(Keys.Left) Then MsgBox("矢印左が押されました") End If End Sub 申し訳ありませんが、なにかいい方法・修正点があれば ご教授お願いいたします。 | ||||||||||||
|
投稿日時: 2004-08-03 16:04
あっ、すいません。
IsInputKey()はオーバーライドして、自分でtrueを返すんです。 矢印キーが特殊キーかどうかの確認を(内部処理として)されたときにtrueを返すようにしておくことによって特殊キーではないと思い込ませるわけです。 | ||||||||||||
|
投稿日時: 2004-08-03 17:05
一郎さん、ご返答ありがとうございます。
オーバーライドして自分でTRUEを返す事により IsInputKeyで指定したキーを拾えました。 ですがやはりイベントで実装する際に 思った動作はしてくれませんでした。 結局は矢印キー押下時のKeyCodeを IsInputKeyに与えてあげるイベントがないので 無理なようです。 自分でも色々と試してみます。 何度もありがとうございます。 なにかわかりましたら又宜しくお願い致します。 | ||||||||||||
|
投稿日時: 2004-08-03 18:41
??? 「IsInputKeyでキーを拾う」というのはどういうことですか?
IsInputKeyは、そのキーがプリプロセス(前処理)が必要な特殊なキーかどうかを判定するのにプログラマの見えない内部で使用されます。 明示的に呼んだりはしません。 フォームにボタンを2つ貼り付けてください。 フォームのKeyPreviewをTrueにしてください。 実行して矢印キーを押してください。フォームのKeyDownは起きませんよね。
次は、貼り付けたボタンを消して、代わりにこのMyButtonを貼り付けてください。 実行して矢印キーを押してください。フォームのKeyDownが起きませんか? | ||||||||||||
|
投稿日時: 2004-08-03 19:28
一郎さん。ご返答ありがとうございます。
引用: -------------------------------------------------------------------------------- 一郎さんの書き込み (2004-08-03 18:41) より: IsInputKeyは、そのキーがプリプロセス(前処理)が必要な特殊なキーかどうかを判定するのにプログラマの見えない内部で使用されます。 明示的に呼んだりはしません。 -------------------------------------------------------------------------------- すいません明示的に呼び出して使用してました。 一郎さんの手順どうりで 矢印キーのKeyDownイベント発生しました(^0^) 一郎さん 本当にありがとうございます。 何度も申し訳ありませんでした。 |
1