使用Simple DropDownStyle的ComboBox不会显示下拉列表

时间:2014-04-09 06:44:40

标签: c# .net winforms combobox

我想使用带有Combobox的{​​{1}},它会在框中输入一些内容时更改项目列表。

项目的加载是正常的,我可以在Items属性的调试模式下看到它们,但下拉列表没有显示,似乎是空的。

我还试图强制显示下拉列表

DropDownStyle=Simple

有关此行为的任何线索吗?

3 个答案:

答案 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的限制,但是在这种情况下,用户仍然可以使用箭头键选择列表中的值