C# 具有简单下拉样式的组合框不';不要显示下拉列表
我想使用一个带有C# 具有简单下拉样式的组合框不';不要显示下拉列表,c#,.net,winforms,combobox,C#,.net,Winforms,Combobox,我想使用一个带有DropDownStyle=Simple的组合框,在框中键入某些内容时,它会更改项目列表 项目的加载是正常的,我可以在items属性的调试模式下看到它们,但是下拉列表没有显示,似乎是空的 我还试图强制显示下拉列表 MyComboBox.DroppedDown = True; 关于这种行为有什么线索吗?我想把它作为一个评论发表,但我的声誉不够高。 如何填充组合框 您的问题似乎非常熟悉: 根据MSDN: ComboBoxStyle.Simple是 指定列表始终可见,并且文本部分始终
DropDownStyle=Simple
的组合框
,在框中键入某些内容时,它会更改项目列表
项目的加载是正常的,我可以在items属性的调试模式下看到它们,但是下拉列表没有显示,似乎是空的
我还试图强制显示下拉列表
MyComboBox.DroppedDown = True;
关于这种行为有什么线索吗?我想把它作为一个评论发表,但我的声誉不够高。 如何填充组合框 您的问题似乎非常熟悉: 根据MSDN:
ComboBoxStyle.Simple
是
指定列表始终可见,并且文本部分始终可见
可编辑。这意味着用户可以输入一个新值,而不是
仅限于选择列表中的现有值
因此,如果列表始终可见,那么它在哪里。由于默认设置的大小
,因此不可见。更改高度,如下所示:
mycombox.Size=新系统.Drawing.Size(256150)代码>
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定义所示。您添加了哪些项目,仅添加了字符串?显示下拉列表是指您键入了什么内容,还是希望能够将其用作普通的下拉框?