他のコントロールに強制的にフォーカスがあってもComboBoxコントロールのDropDownListが表示できてしまう

文書番号 : 26833     文書種別 : 不具合     最終更新日 : 2009/03/19
文書を印刷する
対象製品
InputMan for .NET 4.0J Windows Forms Edition
発生環境
動作環境と同じ
状況
回避方法あり
詳細
Validateイベントなどでフォーカスを強制的に他のコントロールに合わせていても、DropDownListに設定されたComboBoxコントロールをクリックするとDropDownListが表示されてしまいます。
回避方法
フォーカスがある場合のみDropDownStyleをDropDownListとし、それ以外のときはDropDownとすることで回避します。

[VB]
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' フォーカスが当たるまではDropDownとします。
    Combo1.DropDownStyle = ComboBoxStyle.DropDown
  End Sub

  Private Sub Combo1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Combo1.Enter
    ' フォーカスが当たったタイミングでDropDownListとします。
    Combo1.DropDownStyle = ComboBoxStyle.DropDownList
  End Sub

  Private Sub Combo1_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Combo1.Leave
    ' フォーカスが離れたタイミングで、再度DropDownとします。
    Combo1.DropDownStyle = ComboBoxStyle.DropDown
  End Sub

[C#]
  private void Form1_Load(object sender, EventArgs e)
  {
    // フォーカスが当たるまではDropDownとします。
    combo1.DropDownStyle = ComboBoxStyle.DropDown;
  }

  private void combo1_Enter(object sender, EventArgs e)
  {
    // フォーカスが当たったタイミングでDropDownListとします。
    combo1.DropDownStyle = ComboBoxStyle.DropDownList;
  }

  private void combo1_Leave(object sender, EventArgs e)
  {
    // フォーカスが離れたタイミングで、再度DropDownとします。
    combo1.DropDownStyle = ComboBoxStyle.DropDown;
  }
キーワード
INMN07271

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