2011-02-12 85 views
9

默認情況下,ComboBox和Button元素不在由WinForms設計器添加到StatusStrip中(而DropDownButton和SplitButton)。有沒有辦法在那裏添加它們?據我所知,任何控制都可以嵌入其中,但是如何?我可以在ComboBox和一個簡單的按鈕中嵌入WinForms的StatusStrip嗎?

+0

你爲什麼不滿意提議的? – 2011-02-12 15:31:44

+1

建議什麼?沒有提供用於嵌入到StatusStrip中的ComboBox模擬器(ComboBox是一個帶用戶可編輯文本字段的下拉列表 - 我需要用戶能夠在其中輸入文本),TextBox(我可以用它代替將其與DropDownButton結合)。 – Ivan 2011-02-12 16:06:47

回答

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 2011-02-12 16:25:31

19

,你可以剪切通過ToolStrip中的菜單創建的ToolStripComboBox並將其粘貼到StatusStrip中。 無行代碼寫的...和它的作品;-)

0

如果你想一個簡單的按鈕添加到您的StatusStrip,你可以這樣做使用設計。

首先,添加一個DropDownButton。然後,在DropDownButton屬性窗口中,將ShowDropDownArrow屬性設置爲False

重複您想要在您的StatusStrip中顯示的每個附加簡單按鈕。

相關問題