2011-09-28 9 views
2

많은 항목 (약 700 개)을 가질 수있는 콤보 박스가 있어야하지만 콤보 상자에 포함될 수있는 항목 수 (100 개)에 제한이있는 것 같습니다. 이 제한을 확장 할 수있는 방법이 있습니까?Windows Forms의 최대 콤보 박스 항목

업데이트 : 난 정말 여기에 범위를 설명하지 못할

하지만, 검색 상자가 적절하지 않을 것입니다.

MaxDropDownItems를 20 개 항목으로 10 개로 설정하면 다른 10 개 항목에 액세스 할 수있는 스크롤 막대가 제공되지만 100 개 항목을 초과하면 어떻게 될지 명확하지 않습니다.

불행히도 데이터베이스를 기반으로 채워지는 100 개 이상의 항목을 밀어 넣는 것만 큼 간단하지 않습니다. 그러나 고맙게도 우리에게는 테스트 팀이 있습니다!

본인은 시험 결과를 제출할 예정입니다.

+1

이 콤보 박스는 어떤 용도로 사용됩니까? 사용자가 스크롤하는 데는 700 개의 항목이 약간 과도하다고 생각합니다. – Taryn

+0

나는 동의하지만 실제로 상자는 CheckedComboBox라는 사용자 정의 컨트롤이므로 원하는 수의 항목을 선택할 수 있습니다. 대부분의 경우 700은 없지만 이것을 지원할 필요가 있습니다 – Jamesbraders

+1

콤보 상자에 foo 값을 채워서 테스트하는 것은 매우 간단합니다 : for (int i = 0; i <= 150; i ++) { comboBox .Items.Add (i.ToString()); }' – Otiel

답변

2

ComboBox에는 수천 개의 항목이 포함될 수 있습니다. 당신이 말하는 100 한계는 ComboBox 드롭 다운이 나타날 때 표시되는 가시 부분입니다.

성능은 ComboBox 내에 채워지는 데이터 형식과 관련이 있습니다. 복잡한 객체 대 간단한 문자열 값. WPF/SL에서와 마찬가지로 항목의 가상화는 WinForms에는 존재하지 않습니다.

3

GvS에서 지적한대로 MaxDropDownItems 속성은 드롭 다운 부분이 표시 될 때 보이는 항목의 최대 개수입니다.

이렇게하면 700 개의 항목 (사용자에게는 좋지 않지만)을 표시 할 수 있습니다. 콤보 상자의 UI는 사용자가 1000 개 요소 목록에서 선택하도록 설계되지 않았습니다

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; 
+0

그 속성은 최대 100 개만 허용합니다. 1000에 가까워 야합니다! – Jamesbraders

+0

이 속성은 표시된 항목 수 (스크롤을 시작하기 전)에 대한 목록의 최대 항목 수를 설정하지 않습니다. – GvS

+0

재미 있고, AutoCompleteMode 속성을 본 적이 없지만 텍스트 항목이 지원되지 않습니다. – Jamesbraders

1

:

당신은 필터링을 사용하려면 다음과 같이 AutoCompleteMode 속성을 사용할 수 있습니다. 나는 개인적으로 콤보 상자의 20 개 항목이 이미 너무 많다고 생각합니다. 그러나 700 개의 항목을 추가하려면 기술적 인 제한이 없습니다.

항목 선택을 쉽게하는 항목을 선택하면 사용자가 더 행복해집니다. (힌트 : 검색 창을 가진 무언가).