기본적으로 ComboBox 및 Button 요소는 WinForms 디자이너가 StatusStrip에 추가 할 수있는 요소 (DropDownButton 및 SplitButton은있는 반면)가 아닙니다. 거기에 추가 할 수있는 방법이 있습니까? 내가 아는 한 모든 컨트롤은 거기에 임베드 될 수 있지만 어떻게 될까요?ComboBox와 간단한 Button을 WinForms의 StatusStrip에 삽입 할 수 있습니까?
답변
쉽게 ToolStripControlHost
에서 상속 구현할 수 있습니다
추신 :
[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...
}
당신도 디자이너의 항목을 볼 수있게 솔루션을합니다 재건 후
ContextMenuStrip
및 MenuStrip
에도이 항목을 사용할 수 있습니다.
편집 : 사용자 정의 아이콘이 ToolboxBitmapAttribute
를 사용
설정합니다.
그러나 사실 실제로는 ToolStripComboBox
이라는 콤보 상자 도구 상자가 내장되어 있습니다.
그것은 StatusStrip 단지 어떤 디자이너의 가시성이 없다,하지만 쉽게 원하는 경우, 당신이 완전한 가시성을 제공하는 확장 할 수있는 코드에 의해 StatusStrip에 추가하거나 할 수 있습니다, 더 쉽게
[ToolboxBitmapAttribute("image path or use another overload..."),
ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.MenuStrip |
ToolStripItemDesignerAvailability.ContextMenuStrip |
ToolStripItemDesignerAvailability.StatusStrip)]
public class ComboBoxItem : ToolStripComboBox
{
}
당신을 ToolStrip의 메뉴를 통해 생성 된 ToolStripComboBox를 자르고 StatusStrip에 붙여 넣을 수 있습니다. 코드의 어떤 라인은 기록되지 ... 그리고 그것은 디자이너를 사용하여, 당신은 그렇게 할 수 있습니다
위대한 작품. 팁 고마워! – Suncat2000
당신이 당신의 StatusStrip
에 간단한 버튼를 추가하려면 ;-) 작동합니다.
먼저 DropDownButton
을 추가하십시오. 그런 다음 DropDownButton
속성 창에서 ShowDropDownArrow
속성을 False
으로 설정합니다.
StatusStrip
에 표시하려는 추가 간단한 단추 각각에 대해 반복하십시오.
제안 된 제안에 만족하지 않으신 이유가 무엇입니까? –
무엇을 제안 했습니까? StatusStrip에 포함시키기 위해 제공되는 ComboBox 아날로그는 없습니다 (ComboBox는 사용자가 편집 할 수있는 텍스트 필드가있는 드롭 다운 목록입니다. 텍스트를 입력 할 수있는 사용자가 필요합니다). TextBox는 아닙니다. DropDownButton과 결합). – Ivan