我想使用Combobox
和DropDownStyle=Simple
,它在框中键入一些内容时会更改项目列表。带简单DropDownStyle的组合框不显示下拉框
项目的加载是OK的,我可以在Items属性的调试模式下看到它们,但下拉列表不显示,似乎是空的。
我还试图强行下拉把
MyComboBox.DroppedDown = True;
任何线索对这种行为的显示?
我想使用Combobox
和DropDownStyle=Simple
,它在框中键入一些内容时会更改项目列表。带简单DropDownStyle的组合框不显示下拉框
项目的加载是OK的,我可以在Items属性的调试模式下看到它们,但下拉列表不显示,似乎是空的。
我还试图强行下拉把
MyComboBox.DroppedDown = True;
任何线索对这种行为的显示?
根据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定义所示。
设置大小是正确的把戏!非常感谢你 –
我会张贴这个评论,但我的声望不够高。 你如何填充组合框?
你的问题似乎很熟悉: ComboBox will not update its display list unless you change selections first
这必须是DropDownStyle =简单ComboBox.DropDownStyle的限制,但是用户可以在这种情况下使用箭头键仍然选择在列表中的值
什么项目你添加,只是字符串?并且通过显示下拉列表,您是否意味着您键入了某个内容或者您希望能够将它用作正常的下拉框? – WozzeC