MESCIUS InputMan for ASP.NET 10.0J > InputMan for ASP.NETの使い方 > ファンクションキーコントロール > ファンクションキーの設定 |
ファンクションキーコントロールの基本的な機能について解説します。
ファンクションキーコントロールは、FunctionKeyButtonsプロパティが参照するFunctionKeyButtonオブジェクトのコレクションに追加されたキーをフックし、それぞれに独自の機能を割り当てます。 キーボードからコレクションに追加されているファンクションキーが押されると、クライアント側でFunctionKeyDownイベントが発生します。なお、ファンクションキーコントロールのAutoPostBackプロパティがTrueにされている場合、あるいはファンクションキーコントロールがUpdatePanel上に配置されている場合は、サーバー側でFunctionKeyDownイベントが発生します。
この処理は、Webフォーム上のどのコントロールにフォーカスがあるかどうかに関わらず実行されます。また、ファンクションキーコントロール自身はフォーカスを持ちません。
Imports GrapeCity.Web.Input.IMFunctionKey Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then ' F1ボタンをフックするFunctionKeyButtonオブジェクトを作成します。 Dim fb1 As New FunctionKeyButton fb1.BackColor = Color.LightBlue fb1.ForeColor = Color.Blue fb1.FunctionKey = FunctionKeys.F1 fb1.DisplayStyle = DisplayStyle.ImageAndText fb1.Text = "F1" fb1.Image = "~/F1Image.bmp" ' F2ボタンをフックするFunctionKeyButtonオブジェクトを作成します。 Dim fb2 As New FunctionKeyButton fb2.BackColor = Color.LightBlue fb2.ForeColor = Color.Blue fb2.FunctionKey = FunctionKeys.F2 fb2.DisplayStyle = DisplayStyle.ImageAndText fb2.Text = "F2" fb2.Image = "~/F2Image.bmp" ' 作成したファンクションキーボタンをファンクションキーコントロールに追加します。 GcFunctionKey1.FunctionKeyButtons.Add(fb1) GcFunctionKey1.FunctionKeyButtons.Add(fb2) End If End Sub
using GrapeCity.Web.Input.IMFunctionKey; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // F1ボタンをフックするFunctionKeyButtonオブジェクトを作成します。 FunctionKeyButton fb1 = new FunctionKeyButton(); fb1.BackColor = Color.LightBlue; fb1.ForeColor = Color.Blue; fb1.FunctionKey = FunctionKeys.F1; fb1.DisplayStyle = DisplayStyle.ImageAndText; fb1.Text = "F1"; fb1.Image = "~/F1Image.bmp"; // F2ボタンをフックするFunctionKeyButtonオブジェクトを作成します。 FunctionKeyButton fb2 = new FunctionKeyButton(); fb2.BackColor = Color.LightBlue; fb2.ForeColor = Color.Blue; fb2.FunctionKey = FunctionKeys.F2; fb2.DisplayStyle = DisplayStyle.ImageAndText; fb2.Text = "F2"; fb2.Image = "~/F2Image.bmp"; // 作成したファンクションキーボタンをファンクションキーコントロールに追加します。 GcFunctionKey1.FunctionKeyButtons.Add(fb1); GcFunctionKey1.FunctionKeyButtons.Add(fb2); } }
function GcFunctionKey1_FunctionKeyDown(sender, eArgs) { // [F2]キーが押されたときの処理を実装します。 if( eArgs.FunctionKey == FunctionKeys.F2 ) { FindIMControl("GcTextBox1").Clear(); FindIMControl("GcMask1").Clear(); document.getElementById("TextBox1").value = ""; } }
また、イベントパラメータeArgsのCancelプロパティをtrueに設定することで、サーバーへのポストバックをキャンセルすることができます。このとき、サーバー側のFunctionKeyDownイベントは発生しません。
次のサンプルコードは、[F1]キーが押されるとJavascriptのconfirmダイアログが表示され、〈OK〉ボタン押下時のみサーバー側へポストバックされる例です。
function GcFunctionKey1_FunctionKeyDown(sender, eArgs) { // [F1]キーが押されたときの処理を実装します。 if( eArgs.FunctionKey == FunctionKeys.F1 ) { if (!confirm("更新しますか?")) { eArgs.Cancel = true; } } }
Imports GrapeCity.Web.Input.IMFunctionKey Protected Sub GcFunctionKey1_FunctionKeyDown(ByVal sender As Object, ByVal e As FunctionKeyEventArgs) Handles GcFunctionKey1.FunctionKeyDown If e.FunctionKey = FunctionKeys.F2 Then GcTextBox1.Clear() GcMask1.Clear() TextBox1.Text = "" End If End Sub
using GrapeCity.Web.Input.IMFunctionKey; private void GcFunctionKey1_FunctionKeyDown(object sender, FunctionKeyEventArgs e) { if(e.FunctionKey == FunctionKeys.F2) { GcTextBox1.Clear(); GcMask1.Clear(); TextBox1.Text = ""; } }