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

文書番号 : 28463     文書種別 : 使用方法     最終更新日 : 2010/01/26
文書を印刷する
対象製品
PlusPak for Windows Forms 6.0J
詳細
この現象はGcClassicFunctionKeyおよびGcFunctionKeyコントロール(以下、ファンクションキーコントロール)の仕様に基づく動作です。

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

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

以下のサンプルコードは、GcClassicFunctionKeyのFunctionKeyPressイベントを例にしていますが、GcFunctionKeyの場合は、FunctionKeyDownイベントを使用してください。

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

[C#]
private void gcClassicFunctionKey1_FunctionKeyPress(object sender, GrapeCity.Win.Bars.FunctionKeyPressEventArgs e)
{
  if( this == Form.ActiveForm )
  {
    //ファンクションキー押下処理を記述します。

    //イベント処理の完了を設定します。
    e.Handled = true;
  }
}

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