ファンクションキーを押すと非アクティブなフォームに配置されたファンクションキー(FunctionKey)コントロールでもFunctionKeyPressイベントが発生します。

文書番号 : 24817     文書種別 : 使用方法     最終更新日 : 2007/10/12
文書を印刷する
対象製品
InputMan for .NET 4.0J Windows Forms Edition
詳細
この現象はFunctionKeyコントロールの仕様に基づく動作です。

FunctionKeyコントロールをマウスで操作した場合、FunctionKeyPressイベントは操作を行ったコントロールでのみ発生します。これに対してキーボードのファンクションキー入力で操作した場合はアプリケーションに含まれるすべてのコントロールで同イベントが発生します。

アクティブなフォームに配置されたFunctionKeyコントロールでのみイベントを処理するには、FunctionKeyPressイベントハンドラを次の例のように記述します。

[Visual Basic]
Private Sub FunctionKey1_FunctionKeyPress( ByVal sender As System.Object, ByVal e As GrapeCity.Win.Input.FunctionKeyPressEventArgs) _ Handles FunctionKey1.FunctionKeyPress If Me Is Form.ActiveForm 'ファンクションキー押下処理を記述します。 'イベント処理の完了を設定します。 e.Handled = True End If End Sub

[C#]
private void functionKey1_FunctionKeyPress( object sender, GrapeCity.Win.Input.FunctionKeyPressEventArgs e ) { if( this == Form.ActiveForm ) { //ファンクションキー押下処理を記述します。 //イベント処理の完了を設定します。 e.Handled = true; } }

この文書は、以前は次のFAQ IDで公開されていました : 10740