我在WinForms上有一个下拉框,在进入事件中打开它:
cbo.DroppedDown = true;
但是,如果我这样做,组合框会立即打开和关闭。我做错了什么?
我使用此事件的原因是我需要在Tab上打开组合框,当用户点击前一个控件上的Tab时,此组合框会正确地打开。但是,如果用户单击组合框,则会打开并关闭。如何正确地操作?
谢谢
我就是这样尝试的:
private void comboBox1_enter(object sender, EventArgs e)
{
comboBox1.DroppedDown = true;
}
鼠标弹起事件和定时器没有变化,它的行为与预期相同。无论我是用鼠标单击还是使用Tab键进入下拉框,下拉列表都会出现并保持打开状态直到我选择了其中的某个选项。
我会检查是否有其他东西将焦点移出了该框。
((ComboBox)sender).DroppedDown = true;
- SHIN JaeGuk虽然这个方法有点老,但我发现它很有效。你可以通过TAB键进入下拉框并打开它,如果你点击箭头,它不会关闭。
private void ComboBox_Enter(object sender, EventArgs e)
{
if (MouseButtons == MouseButtons.None)
((System.Windows.Forms.ComboBox)sender).DroppedDown = true;
}
void cbo_GotFocus(object sender, EventArgs e)
{
ComboBox cbo = sender as ComboBox;
cbo.DroppedDown = true;
}
我认为你需要先将焦点集中在它上面,然后再打开comboBox。
cbo.Focus();
cbo.DroppedDown = True