具有简单DropDownStyle的组合框;t显示下拉列表

本文关键字:显示 下拉列表 组合 简单 DropDownStyle | 更新日期: 2023-09-27 17:57:27

我想使用ComboboxDropDownStyle=Simple,当在框中键入某些内容时,它会更改项目列表。

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

我还试图强制显示下拉放置

MyComboBox.DroppedDown = True;

有关于这种行为的线索吗?

具有简单DropDownStyle的组合框;t显示下拉列表

根据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不会更新其显示列表,除非您首先更改选择