2010-06-25 5 views
15

여러 항목을 선택할 수있는 드롭 다운 목록 컨트롤이 있습니다. CheckedListbox와 유사하지만 드롭 다운 목록 양식 (화면의 큰 덩어리를 차지하지 않기를 바랍니다). 이 시점에서 저는 .NET과 같은 컨트롤이 내장되어 있지 않다고 확신합니다.Winforms - 다중 선택 드롭 다운 목록

참고 이것은 ASP.NET이 아닌 Winforms입니다. 어떤 제안?

+4

짐 어린 양 (http://www.codeproject.com/KB/combobox/extending_combobox.aspx)에 의해 언급 된 컨트롤을 사용하지만,이 수정 프로그램을 적용하여 문제를 해결할 http://www.codeproject.com/KB/miscctrl/simplepopup.aspx 포럼에서 "PopupComboBox의 포커스 문제 수정":'Popupcombobox.cs'에서'ShowDropDown()'을 BeginInvoke (새로운 MethodInvoker (ShowDropDown)); 'protected override void WndProc (ref Message m)'메소드에서. 이것은 나를 위해 초점을 맞추는 작업을 만들었지 만 지금까지는 기분이 좋았다. – Christian

답변

21

체크 아웃 CodeProject의에이 프로젝트 :

+0

심각하게? 이런. 이것은 정확히 내가 필요로하는 것입니다 - 나는 이것을 24 시간 전에 게시했으면 좋겠습니다! 명성. – AlanR

+2

결국이 체크 박스를 포기했습니다. 마우스 클릭, 자동 완료 등을 인식 할 때 처음 생각한 것처럼 잘 연마되지 않았습니다. 팝업 대화 상자를 사용하기로 결정했습니다. 아직도 이것을 아는 것이 가치가 있습니다. – AlanR

7

또 다른 수정이 :

위의 솔루션은 두 개의 클릭을 필요로하는 첫 번째 문제를 해결하기 위해 정확 그러나 확인란 목록을 입력하려면 컨트롤을 클릭하여 종료하고 포커스를 유지하며 두 번 클릭하여 다른 컨트롤로 이동해야 할 때 새로운 문제가 발생합니다. CheckBoxComboBox.cs에서

은 다음 재정의 추가 : 나는 다음과 같은 코드를 사용하여이 문제를 해결할 수 있었다 롭 P.이 대답에서 대답으로

protected override void OnClick(EventArgs e) 
    { 
     base.OnClick(e); 
     this.Parent.Focus(); 
    } 

를, 그 중 하나를 클릭에 초점을 보유하지 않습니다 행사.

+0

또 다른 수정. 박쥐가 해결했다. 그게 해킹이지만 필요하다. 드롭 다운을 열 때를 ​​제외하고는 솔루션이 유용하기 때문에 – Sami

1

드롭 다운 양식을 다시 표시하려면 아래 코드가 그것을 닫아야합니다.

작동 코드는 다음과 같습니다

protected override void OnClick(EventArgs e) 
    { 
     base.OnClick(e); 
     this.Parent.Focus(); 
     this.dropdown.Show(this); 
    }