Windows窗体中的最大组合框项目

时间:2011-09-28 13:35:07

标签: c# winforms combobox

我需要一个可以拥有大量项目(大约700个)的组合框,但似乎组合框可以包含的项目数量有限(100!)。有没有办法可以延长这种限制?

更新

我无法在这里解释范围,但搜索框不合适。

如果MaxDropDownItems设置为10,包含20个项目,它会提供一个滚动条来访问其他10个项目,但不清楚如果超过100个项目将会发生什么。

不幸的是,它并不像在基于数据库填充的那样推送100多个项目那么简单。但是,幸运的是,我们有一个测试团队!

我会在适当的时候发布测试结果。

3 个答案:

答案 0 :(得分:4)

正如GvS所指出的,MaxDropDownItems属性是显示下拉部分时可见项目的最大数量。

因此,可以显示700个项目(虽然对用户来说不是很好)。

您可以使用下面的AutoCompleteMode属性启用过滤:

AutoCompleteStringCollection collection = new AutoCompleteStringCollection();
for (int i = 0; i < 1000; i++)
{
    string item = string.Format("Item {0}", i.ToString());
    collection.Add(item);
    comboBox1.Items.Add(item);
}

comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
comboBox1.AutoCompleteCustomSource = collection;

答案 1 :(得分:4)

ComboBox可以很容易地包含数千个项目。您引用的100限制是显示ComboBox下拉列表时显示的可见部分。

请注意,性能与ComboBox中填充的数据类型有关;复杂对象与简单字符串值。 WinForms中不存在项目的虚拟化,就像在WPF / SL中一样。

答案 2 :(得分:1)

组合框的UI不是为了让用户从1000个元素的列表中进行选择而设计的。我个人认为组合框中的20个项目已经太多了。但是如果你想添加700个项目,则没有技术限制。

如果您选择能够更轻松地选择项目的内容,您的用户会更高兴。 (提示:带搜索框的内容)。