DropDownStyleをDropDownListに設定すると、Tabキー押下時にKeyExitイベントが発生しない。

文書番号 : 25687     文書種別 : 不具合     最終更新日 : 2008/05/13
文書を印刷する
対象製品
InputMan for .NET 4.0J Windows Forms Edition
発生環境
動作環境と同じ
状況
回避方法あり
詳細
この問題はComboコントロールで発生します。
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 ) );
    }
  }
}
キーワード
INMN06787

この文書は、以前は次のバグレポートIDで公開されていました : 7484