他のコントロールに強制的にフォーカスがあってもComboBoxコントロールのDropDownListが表示できてしまう
対象製品
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;
}
[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