Максимум элементов Combobox в Windows Forms - PullRequest
3 голосов
/ 28 сентября 2011

Мне нужно иметь комбинированный список, который может содержать большое количество элементов (около 700), но, похоже, существует ограничение на количество элементов, которые может содержать комбинированный список (100!). Есть ли способ расширить это ограничение?

UPDATE:

Я не могу действительно объяснить сферу здесь, но окно поиска не подходит.

Если MaxDropDownItems установлен на 10 с 20 элементами, он предоставляет полосу прокрутки для доступа к другим 10, но не ясно, что произойдет, если будет превышено 100 элементов.

К сожалению, это не так просто, как добавить туда более 100 элементов, так как он заполняется на основе базы данных. Однако, к счастью, у нас есть команда тестирования!

Результаты тестирования со временем выложу.

Ответы [ 3 ]

5 голосов
/ 28 сентября 2011

ComboBox может легко содержать тысячи предметов.Ограничение 100, на которое вы ссылаетесь, является видимой частью, которая отображается, когда появляется выпадающий список ComboBox.

Обратите внимание, что производительность связана с типом данных, которые заполняются в ComboBox;сложный объект против простого строкового значения.Виртуализация элементов не существует в WinForms, как в WPF / SL.

4 голосов
/ 28 сентября 2011

Как указывает 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 голос
/ 28 сентября 2011

Пользовательский интерфейс комбинированного списка не предназначен для того, чтобы позволить пользователю выбирать из списка 1000 элементов. Я лично считаю, что 20 предметов в комбинированном ящике уже слишком много. Но если вы хотите добавить 700 пунктов, никаких технических ограничений нет.

Ваши пользователи будут счастливее, если вы выберете что-то, что облегчит выбор элемента. (Подсказка: что-то с окном поиска).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...