我需要一个可以拥有大量项目(大约700个)的组合框,但似乎组合框可以包含的项目数量有限(100!)。有没有办法可以延长这种限制?
更新
我无法在这里解释范围,但搜索框不合适。
如果MaxDropDownItems设置为10,包含20个项目,它会提供一个滚动条来访问其他10个项目,但不清楚如果超过100个项目将会发生什么。
不幸的是,它并不像在基于数据库填充的那样推送100多个项目那么简单。但是,幸运的是,我们有一个测试团队!
我会在适当的时候发布测试结果。
答案 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个项目,则没有技术限制。
如果您选择能够更轻松地选择项目的内容,您的用户会更高兴。 (提示:带搜索框的内容)。