DropDownStyleをDropDownListに設定すると、Tabキー押下時にKeyExitイベントが発生しない。
対象製品
InputMan for .NET 4.0J Windows Forms Edition
発生環境
動作環境と同じ
状況
回避方法あり
詳細
この問題はComboコントロールで発生します。
DropDownStyleをDropDownListに設定すると、Tabキー押下時にKeyExitイベントが発生しません。
DropDownStyleをDropDownListに設定すると、Tabキー押下時にKeyExitイベントが発生しません。
回避方法
ComboコントロールのPreviewKeyDownイベントをハンドルし、このハンドラを以下のように記述することでこの問題を回避することができます。
[VB]
Private Sub Combo1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles Combo1.PreviewKeyDown
' Tabキーが押下された場合に、KeyExitイベントのハンドラを明示的に呼び出します。
If e.KeyCode = Keys.Tab Then
If e.Shift Then
Call Combo1_KeyExit(Nothing, New KeyExitEventArgs(ExitKeys.ShiftTab))
Else
Call Combo1_KeyExit(Nothing, New KeyExitEventArgs(ExitKeys.Tab))
End If
End If
End Sub
[C#]
private void combo1_PreviewKeyDown( object sender, PreviewKeyDownEventArgs e )
{
// Tabキーが押下された場合に、KeyExitイベントのハンドラを明示的に呼び出します。
if( e.KeyCode == Keys.Tab )
{
if( e.Shift )
{
this.combo1_KeyExit( null, new KeyExitEventArgs( ExitKeys.ShiftTab ) );
}
else
{
this.combo1_KeyExit( null, new KeyExitEventArgs( ExitKeys.Tab ) );
}
}
}
[VB]
Private Sub Combo1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles Combo1.PreviewKeyDown
' Tabキーが押下された場合に、KeyExitイベントのハンドラを明示的に呼び出します。
If e.KeyCode = Keys.Tab Then
If e.Shift Then
Call Combo1_KeyExit(Nothing, New KeyExitEventArgs(ExitKeys.ShiftTab))
Else
Call Combo1_KeyExit(Nothing, New KeyExitEventArgs(ExitKeys.Tab))
End If
End If
End Sub
[C#]
private void combo1_PreviewKeyDown( object sender, PreviewKeyDownEventArgs e )
{
// Tabキーが押下された場合に、KeyExitイベントのハンドラを明示的に呼び出します。
if( e.KeyCode == Keys.Tab )
{
if( e.Shift )
{
this.combo1_KeyExit( null, new KeyExitEventArgs( ExitKeys.ShiftTab ) );
}
else
{
this.combo1_KeyExit( null, new KeyExitEventArgs( ExitKeys.Tab ) );
}
}
}
キーワード
INMN06787
この文書は、以前は次のバグレポートIDで公開されていました : 7484