Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有简单下拉样式的组合框不';不要显示下拉列表_C#_.net_Winforms_Combobox - Fatal编程技术网

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定义所示。

您添加了哪些项目,仅添加了字符串?显示下拉列表是指您键入了什么内容,还是希望能够将其用作普通的下拉框?