2011-10-12 3 views
4

here이라는 메서드를 사용하여 내장 목록 드롭 다운 대신 선택 그리드를 표시하는 사용자 정의 콤보 상자를 만들려고합니다. 이 솔루션은 기본적으로 OnDropDown 메서드를 재정의하고 폼을 만들어 보여줍니다. 그러나 아래쪽 화살표를 클릭하면 내장 드롭 다운도 표시된다는 것을 알았습니다. 내 양식은 그 위에 그려 지지만 빨리 잠깐 나타납니다. 어떤 아이디어?Winforms에서 ComboBox의 OnDropDown 메서드를 어떻게 재정의합니까?

protected override void OnDropDown(EventArgs e) 
{ 
    DropDownForm dropDown = new DropDownForm(); 

    // Locate at correct location. 
    DropDownForm.Location = ...; 

    DropDownForm.Show(); 
} 

답변

4

이 경우 사용자 지정 사용자 지정 컨트롤을 사용하는 것이 좋습니다. 컨트롤이 디자인 된 기본 동작을 피하려고하는 대신 텍스트 상자와 그리드를 여는 단추로 사용자 정의 컨트롤을 만드는 것이 쉽습니다. 사실, 그리드를 번들로 묶어서 완전히 재사용 할 수 있습니다.

+0

나는 누군가의 대답 일 것 같았습니다. 너무 어려워서는 안됩니다. ComboBox의 동작을 모방하려고 할 때 뭔가 빠졌을 까봐 걱정됩니다. 어쨌든, 합법적으로 배포 할 수있는 프레임 워크 나 Windows에 아래쪽 화살표 이미지가 있습니까? – bsh152s

+0

당신은 그 대답을 두려워해서는 안됩니다 - 그것을하는 올바른 방법이고 올바른 방법으로하고 싶습니다, 맞습니까? 프로젝트에서 사용할 그래픽 및 아이콘의 수를 보려면 http://www.iconfinder.com을 확인하십시오. 이 아이콘 중 많은 수가 배포 용 공개 라이센스를 가지고 있습니다. –

관련 문제