Webページの作成
今回作成するWebページは、ASP標準のテキストボックスとファンクションキーコントロールで構成します。TextBoxコントロールは、TextModeプロパティをMultiLineにしておきます。ファンクションキーコントロールの設定は、後述します。
FunctionKeyコントロールについて
ファンクションキー(FunctionKey)コントロールは、仮想的なファンクションキーを画面上に表示し、Webフォーム上のフォーカス位置に関わらず、ファンクションキーの動作を制御するキーフック用のコントロールで、FunctionKeyButtonオブジェクトのコレクションになっています。
各ファンクションキーは単一のFunctionKeyButtonオブジェクトで表示され、それぞれプロパティでその形態を設定します。
FunctionKeyコントロールおよびFunctionKeyButtonオブジェクトのデザインは、プロパティウィンドウを使用して行いますが、プロパティウィンドウに無い設定はスタイルシートを使ってデザインすることもできます。スタイル設定は、HTML内の記述とは別に専用のスタイルシートを使うことができるので、プログラマ以外の人(例えばWebデザイナ)がデザインに参加することが可能になります。
各ファンクションキーが押されると、FunctionKeyButtonオブジェクトにはクライアント側でFunctionKeyDownイベントが発生します。ファンクションキーコントロールがUpdatePanel上に配置されている場合は、サーバー側でFunctionKeyDownイベントが発生します。
フォームに配置したばかりのFunctionKeyコントロールには、ファンクションキーは実装されておらず、コレクションエディタを使用して必要な数だけファンクションキーを追加します。
イベントハンドラを使って、ファンクションキーに独自の処理を実装できます。この場合、Webブラウザに割り当てられているファンクションキーの動作を禁止させます。例えば、Internet ExplorerではF1キーを押すとInternet Explorerのヘルプが表示されますが、この動作を禁止して「F1キーを押すと独自のヘルプファイルを表示させる処理を実行させる」などといったことが実現できます。
また、Webブラウザに実装されているファンクションキーの動作を、FunctionKeyコントロールのキーに設定することも可能です。Webブラウザに割り当てられているファンクションキーの番号と実行動作はブラウザ上に表示されないため、これを分かりやすく表示させることもできます。
FunctionKeyコントロールは、キーボード操作以外にも、表示されているキーをマウスでクリックすることも可能です。特に専用のイベントがあるのではなく、独自に実装したイベント処理は、マウスのクリックにも動作するように作られています。ただし、Webブラウザ実装のファンクションキー動作を使う場合は、マウスでのクリックは作動しません。キーボードのファンクションキーのみの動作になります。