- ベストアンサー
aspx画面のINPUTボタンにファンクションキーを割り当てたい
Vb.Netで開発中です。 aspx画面でINPUTボタンを使用しております。 ボタンのプロパティのAccessKeyの割り当てでAlt+「指定したキー」の設定ができるのは知っていたのですが、ファンクションキーを割り当てて欲しいとの要望があり、困っています。 ファンクションキー「F1~F12」を押下したときにあるINPUTボタンのイベントがはしるような実装方法を知りたいです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
JSを利用して、これでも良いなら可能ですが。。。 やはり割り当て不可能なファンクションキーが多いです。 客先のブラウザがIE限定なら、割り当てしてはいけないものも予想できますが。。。 <HTML> <HEAD> <title>WebForm1</title> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <script language="javascript"> //起動時のフォーカスセット function FocusSet_OnLoad() { window.document.all.item('TextBox1').focus(); } //キーイベント時のフォーカスセット function FocusSet_KeyDown() { var keycode = window.event.keyCode; switch(keycode){ case 118:{ //F7キー window.document.all.item('TextBox1').focus(); break; } case 119:{ //F8キー window.document.all.item('TextBox2').focus(); break; } } } </script> </HEAD> <body MS_POSITIONING="GridLayout" onload ="FocusSet_OnLoad();" onkeydown="FocusSet_KeyDown();" > <form id="Form1" runat="server" method="post"> <asp:TextBox id="TextBox1" AccessKey="D" text = "ALT+D or F7" width="100%" runat="server" /> <asp:TextBox id="Textbox2" AccessKey="E" text = "ALT+E or F8" width="100%" runat="server" /> </form> </body> </HTML>
その他の回答 (1)
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
ヘルプにも書いてあります。 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfSystemWebUIWebControlsWebControlClassAccessKeyTopic.asp >Alt キーを押しながら、指定した文字を表すキーを押すことで、コントロールにすばやく移動できます 「文字を表すキー」←ここ >ファンクションキーを割り当てて欲しいとの要望があり ファンクションキーなどは無理かと、、、 WebControlはブラウザ内部で有効なコントロールということだから、ブラウザに勝てるとも思わないし。。。 だから 「マイクロソフト製品(.NETとIEの兼ね合い)の仕様により、無理です」 と、突っぱねましょう。
お礼
ご回答ありがとうございます。 >ファンクションキーなどは無理かと、、、 そうなんですか。。 うーん(困) ファンクションにして下さいとのお願いを受けましてAlt+キーでいいじゃないかぁ~慣れの問題じゃ?と思うんですが。。困ってます。。 すみません、愚痴を言いまして(;^^) ありがとうございました。
お礼
アドバイスありがとうございます。 JavaでKeyDownのイベントを実行することが出来ました。 が、、フォームのテキストにKeyCodeを設定しようとしてるんですが、できません。。 (初心者で申し訳ないです。。) document.Form1.テキストID.value = event.keyCode としてますが、、 document.Form1.まで打ってもテキストIDが表示されません。。 何か設定が必要なんでしょうか? 何度もスミマセンがもしご存知でしたらご教授下さい。
補足
何度もスミマセン。 出来ました(*^0^*)ありがとうございました とても助かりました(感謝)