【发布时间】:2018-10-17 13:05:56
【问题描述】:
我有一个包含多个组合框的表单。
我希望其中的一个 ComboBox 在获得焦点时打开元素列表,无论是通过键盘还是鼠标。
ComboBox 类的DroppedDown 属性管理元素列表的可见性。
最符合我需求的事件是Enter,所以我写的代码是:
private void comboBox1_Enter(object sender, EventArgs e)
{
this.comboBox1.DroppedDown = true;
}
它可以工作,但是当直接单击位于没有焦点的组合框右侧的图标时,元素列表打开,打开后突然消失。
我尝试了很多方法来解决这个奇怪的行为,检查Focused 属性或使用其他事件,如DropDown 或MouseClick,但没有得到任何可接受的结果。
【问题讨论】:
-
如果我错了,请纠正我,但是“组合框右侧的图标”是一个箭头,是吗?关了就开,开就关?
-
是的,这个图标是一个三角形/箭头,随着这个变化它失去了原来的行为。
-
正如@MaxB所说,当它被下拉时(箭头看起来被按下)点击它意味着你想关闭它,否则你为什么要点击它?如果你想要一些不同于平常的功能,你必须创建自己的自定义控件。
-
@AshkanMobayenKhiabani 我刚刚编辑了这个问题,因为我的解释不是很准确。对不起
-
@alessaro 我的解决方案对你有用吗?
标签: c# winforms combobox dropdown