我想使用带有Combobox
的{{1}},它会在框中输入一些内容时更改项目列表。
项目的加载是正常的,我可以在Items属性的调试模式下看到它们,但下拉列表没有显示,似乎是空的。
我还试图强制显示下拉列表
DropDownStyle=Simple
有关此行为的任何线索吗?
答案 0 :(得分:1)
根据MSDN:
ComboBoxStyle.Simple
是
指定列表始终可见且文本部分是 编辑。这意味着用户可以输入新值而不是 仅限于在列表中选择现有值。
因此,如果列表始终可见,那么它在哪里。由于默认情况下设置的Size
,它不可见。像这样更改height
:
MyComboBox.Size = new System.Drawing.Size(256, 150);
150
表示此情况下的高度。默认情况下,高度类似21
,而且非常小。 将高度增加到某个合适的数字,列表应该可见。
另外一个非常重要的注意事项:在设置大小之前设置ComboBoxStyle。我不知道为什么,但似乎有些失效或者有些不对劲。
所以以下方法可行:
//Will work
MyComboBox.DropDownStyle = ComboBoxStyle.Simple;
MyComboBox.Size = new System.Drawing.Size(256, 150);
但这不会:
//Will not work
MyComboBox.Size = new System.Drawing.Size(256, 150);
MyComboBox.DropDownStyle = ComboBoxStyle.Simple;
后者可能会使用一些显式的失效调用,但我没有验证。
如果您希望在用户点击下拉箭头时打开下拉菜单,则必须使用其他组合框样式。在Simple
样式中,下拉箭头不会出现,列表将始终显示为MSDN定义所示。
答案 1 :(得分:0)
我会将此作为评论发布,但我的声誉不够高。 你是如何填充ComboBox的?
您的问题似乎非常熟悉: ComboBox will not update its display list unless you change selections first
答案 2 :(得分:0)
这必须是DropDownStyle = Simple ComboBox.DropDownStyle的限制,但是在这种情况下,用户仍然可以使用箭头键选择列表中的值