2011-02-12 1 views
9

기본적으로 ComboBox 및 Button 요소는 WinForms 디자이너가 StatusStrip에 추가 할 수있는 요소 (DropDownButton 및 SplitButton은있는 반면)가 아닙니다. 거기에 추가 할 수있는 방법이 있습니까? 내가 아는 한 모든 컨트롤은 거기에 임베드 될 수 있지만 어떻게 될까요?ComboBox와 간단한 Button을 WinForms의 StatusStrip에 삽입 할 수 있습니까?

+0

제안 된 제안에 만족하지 않으신 이유가 무엇입니까? –

+1

무엇을 제안 했습니까? StatusStrip에 포함시키기 위해 제공되는 ComboBox 아날로그는 없습니다 (ComboBox는 사용자가 편집 할 수있는 텍스트 필드가있는 드롭 다운 목록입니다. 텍스트를 입력 할 수있는 사용자가 필요합니다). TextBox는 아닙니다. DropDownButton과 결합). – Ivan

답변

11

쉽게 ToolStripControlHost에서 상속 구현할 수 있습니다

ComboStripItem in forms designer

추신 :

[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.MenuStrip | 
             ToolStripItemDesignerAvailability.ContextMenuStrip | 
             ToolStripItemDesignerAvailability.StatusStrip)] 
    public class ComboStripItem : ToolStripControlHost 
    { 
     private ComboBox combo; 

     public ComboStripItem() 
      : base(new ComboBox()) 
     { 
      this.combo = this.Control as ComboBox; 
     } 

     // Add properties, events etc. you want to expose... 
    } 

당신도 디자이너의 항목을 볼 수있게 솔루션을합니다 재건 후
ContextMenuStripMenuStrip에도이 항목을 사용할 수 있습니다.

편집 : 사용자 정의 아이콘이 ToolboxBitmapAttribute를 사용

설정합니다.

그러나 사실 실제로는 ToolStripComboBox이라는 콤보 상자 도구 상자가 내장되어 있습니다.
그것은 StatusStrip 단지 어떤 디자이너의 가시성이 없다,하지만 쉽게 원하는 경우, 당신이 완전한 가시성을 제공하는 확장 할 수있는 코드에 의해 StatusStrip에 추가하거나 할 수 있습니다, 더 쉽게

[ToolboxBitmapAttribute("image path or use another overload..."), 
    ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.MenuStrip | 
            ToolStripItemDesignerAvailability.ContextMenuStrip | 
            ToolStripItemDesignerAvailability.StatusStrip)] 
public class ComboBoxItem : ToolStripComboBox 
{ 
} 
+0

시원하게 보인다. 어쩌면 디자이너 도구 상자에서 기본 기어 아이콘 대신 사용할 아이콘을 설정할 수 있습니까? – Ivan

+0

@Ivan : edited;) – digEmAll

19

당신을 ToolStrip의 메뉴를 통해 생성 된 ToolStripComboBox를 자르고 StatusStrip에 붙여 넣을 수 있습니다. 코드의 어떤 라인은 기록되지 ... 그리고 그것은 디자이너를 사용하여, 당신은 그렇게 할 수 있습니다

+0

위대한 작품. 팁 고마워! – Suncat2000

0

당신이 당신의 StatusStrip간단한 버튼를 추가하려면 ;-) 작동합니다.

먼저 DropDownButton을 추가하십시오. 그런 다음 DropDownButton 속성 창에서 ShowDropDownArrow 속성을 False으로 설정합니다.

StatusStrip에 표시하려는 추가 간단한 단추 각각에 대해 반복하십시오.