コンピューターのロックから回復するとき、ファンクションキーボタンが表示されない場合がある
対象製品
PlusPak for Windows Forms 5.0J
発生環境
動作環境と同じ
状況
回避方法あり
詳細
Ctrl+Alt+Delを押してコンピューターのロックを選択し、後にロックを解除したとき、GcFunctionKeyコントロール上のボタンが表示されなくなる場合があります。
本現象は、CombinationKeyDisplayModeプロパティが"Dynamic"の場合のみ発生します。Ctrl+Alt+Delを押下する際、修飾キーを使用しないファンクションキーボタンは非表示になり、またシステムがロック状態ではKeyUpのメッセージを取得することができないため現象が発生してしまいます。
本現象は、CombinationKeyDisplayModeプロパティが"Dynamic"の場合のみ発生します。Ctrl+Alt+Delを押下する際、修飾キーを使用しないファンクションキーボタンは非表示になり、またシステムがロック状態ではKeyUpのメッセージを取得することができないため現象が発生してしまいます。
回避方法
ファンクションキーボタンの表示を修飾キーでフィルタリングしない場合は、CombinationKeyDisplayModeプロパティを"Always"に設定してください。
CombinationKeyDisplayModeプロパティを"Dynamic"に設定するときは、フォームに下記の回避コードを追加してください。
CombinationKeyDisplayModeプロパティを"Dynamic"に設定するときは、フォームに下記の回避コードを追加してください。
[VB]
Private actived As Boolean = False
Protected Overloads Overrides Sub OnActivated(ByVal e As EventArgs)
actived = True
MyBase.OnActivated(e)
End Sub
Protected Overloads Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
If actived Then
actived = False
Me.GcFunctionKey1.UpdateFunctionKeys()
End If
End Sub
Private actived As Boolean = False
Protected Overloads Overrides Sub OnActivated(ByVal e As EventArgs)
actived = True
MyBase.OnActivated(e)
End Sub
Protected Overloads Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
If actived Then
actived = False
Me.GcFunctionKey1.UpdateFunctionKeys()
End If
End Sub
[C#]
bool actived = false;
protected override void OnActivated(EventArgs e)
{
actived = true;
base.OnActivated(e);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (actived)
{
actived = false;
this.gcFunctionKey1.UpdateFunctionKeys();
}
}
bool actived = false;
protected override void OnActivated(EventArgs e)
{
actived = true;
base.OnActivated(e);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (actived)
{
actived = false;
this.gcFunctionKey1.UpdateFunctionKeys();
}
}
キーワード
PPWI07641
この文書は、以前は次のバグレポートIDで公開されていました : 8255