ToolStrip 技術摘要

本主題提供有關 ToolStrip 控制項及支援這些控制項之類別的摘要資訊。

ToolStrip 控制項以及與其相關聯的類別提供了完整的解決方案,可用於建立工具列、 狀態列和功能表。

命名空間

System.Windows.Forms

背景

有了 ToolStrip 控制項以及與其相關聯的類別,您可以建立具有一致且專業的外觀和行為的進階工具列功能。 ToolStrip 控制項和類別透過先前的控制項提供下列改良功能:

  • 更一致的事件模型。

  • 更一致的設計階段行為,其中包含工作清單和項目集合編輯器。

  • 使用 ToolStripManagerToolStripRenderer 來自訂轉譯。

  • ToolStripContainerToolStripPanel 來進行內建浮動定位 (共用停駐時工具區域內的水平或垂直空間)。

  • 設計階段和執行階段具有 AllowItemReorder 屬性的項目重新排列。

  • 項目重新配置到具有 CanOverflow 屬性的溢位功能表。

  • 具有 ToolStripContainerToolStripPanelToolStripContentPanel 的完全可設定之控制位置。

  • 傳統的 ToolStrip 之裝載,或使用 ToolStripControlHost 的自訂控制項。

  • 合併使用 ToolStripPanelToolStrip 控制項。

ToolStripMenuStripContextMenuStripStatusStrip 的可擴充基底類別。 這些控制項是 ToolStripItem 容器,它們繼承了一般行為和事件處理、擴充以便讓每個實作處理適合它的行為。 衍生自 ToolStripItem 的控制項如下表所示。 基底 ToolStrip 類別處理繪製、 使用者輸入,以及這些控制項的拖放事件。

ToolStripMenuStripContextMenuStripStatusStrip 控制項取代先前的工具列、 功能表、捷徑功能表和狀態列控制項,雖然這些控制項是被保留來確保回溯相容性。

ToolStrip 類別簡介

下表顯示依技術領域分組的 ToolStrip 類別。

技術範圍 類別
工具列、 狀態和功能表容器 ToolStrip

MenuStrip

ContextMenuStrip

StatusStrip

ToolStripDropDownMenu
ToolStrip 項目 ToolStripLabel

ToolStripDropDownItem

ToolStripMenuItem

ToolStripButton

ToolStripStatusLabel

ToolStripSeparator

ToolStripControlHost

ToolStripComboBox

ToolStripTextBox

ToolStripProgressBar

ToolStripDropDownButton

ToolStripSplitButton
位置 ToolStripContainer

ToolStripContentPanel

ToolStripPanel
展示和轉譯 ToolStripManager

ToolStripRenderer

ToolStripProfessionalRenderer

ToolStripRenderMode

ToolStripManagerRenderMode

ToolStrip 設計階段功能

ToolStrip 家族控制項提供一組豐富的工具和範本,它能夠就地編輯和定義使用者介面的基礎,讓您可以快速建立實用的應用程式。

工作對話方塊

在 Visual Studio 中,按一下設計工具中控制項上的智慧標籤會顯示工作清單中,以便存取許多常用的命令。

項目集合編輯器

在 Visual Studio 中,當您按一下工作清單中的 [ 編輯專案 ] 或以滑鼠右鍵按一下控制項,然後在快捷方式功能表中選取 [編輯專案 ],就會顯示控制項的集合編輯器。 集合編輯器可讓您新增、 移除和重新排列控制項包含的項目。 您也可以檢視和變更控制項與控制項項目的屬性。

裝載控制項

ToolStripControlHost 類別會提供內建的包裝函式給 ToolStripComboBoxToolStripTextBoxToolStripProgressBar 控制項。 您也可以裝載任何其他現有或者 ToolStripControlHost 中的 COM 控制項。

如需控制項裝載的範例,請參閱 如何:使用 ToolStripControlHost 包裝 Windows Forms 控制項。

轉譯

ToolStrip 類別會實作明顯不同於其他的 Windows Form 控制項的轉譯配置。 透過這種配置,您可以輕鬆地套用樣式和主題。

要套用樣式到 ToolStrip 和它所包含的所有 ToolStripItem 物件,您不必針對每個項目處理 Paint 事件。 相反地,您可以把 RenderMode 屬性設定為 Custom 以外任何一個 ToolStripRenderMode 的值。 或者,您可以把 Renderer 直接設定成繼承自 ToolStripRenderer 類別的任何類別。 設定這個屬性會自動設定 RenderMode

您可以將相同的樣式套用至多個相同的應用程式中的 ToolStrip 物件,這可以藉由把 RenderMode 設定為 ManagerRenderMode以及分別把 RenderModeRenderer 屬性設定為您想要的 ToolStripManagerRenderModeToolStripRenderer 值。

如需轉譯的範例,請參閱 如何:在 Windows Forms 中建立及設定 ToolStrip 控制項的自訂轉譯器。

樣式和主題

ToolStrip 以及關聯的類別可讓您輕鬆支援視覺化樣式和自訂外觀,而且不需要覆寫 OnPaint 方法的每個項目。 使用 DisplayStyleRenderModeRenderer 屬性。

浮動定位和停駐

您可以浮動定位、停駐或絕對定位 ToolStrip 控制項。 ToolStrip 項目由容器中的 LayoutEngine 來配置版面。

浮動 是工具列共用水準或垂直空間的能力。 Windows Form 的 ToolStripContainer 可以反過來有個面板,它可以在表單的左邊、 右邊、 上方和下方,並且用來定位和浮動定位 ToolStripMenuStripStatusStrip 控制項。 如果您將多個 ToolStrip 控制項放在左邊或右邊 ToolStripContainer,它們會垂直堆疊。 如果您將它們放在頂端或底端 ToolStripContainer,它們會水平堆疊。 您可以使用 ToolStripContainer 的中央 ToolStripContentPanel來定位在表單上的傳統控制項。

任何或所有 ToolStripContainer 控制項可直接在設計階段選取,而且可以刪除。 ToolStripContainer 可展開及摺疊,並且可以使用它所包含的控制項調整大小。

停駐 是指定控制項在表單左、右、上或下側的簡單位置。

透過停駐來浮動定位的優點在於 ToolStripMenuStripStatusStrip 控制項可以與其他控制項共用水平或垂直空間。

大部分的 ToolStrip 控制項能夠如同其他控制項被定位到表單,而不使用浮動定位。 您也可以藉由將 ToolStrip 控制項從它的 ToolStripContainer 移出並且將 Dock 屬性設定為 None, 來指定它放置在表單的任意位置上,或者藉由個別設定 Location 屬性來指定它的絕對位置。 請參閱 如何:將 ToolStrip 移出 ToolStripContainer 到表單 上。

使用一或多個 ToolStripPanel 控制項來獲得更大的彈性,特別是針對多重文件介面 (MDI) 應用程式,或如果您不需要 ToolStripContainerToolStripPanel 提供一個可停駐空間來定位及浮動定位除了傳統控制項的 ToolStrip 控制項。 根據預設, ToolStripPanel 不會出現在設計工具 工具箱中,但您可以用滑鼠右鍵按一下 [工具箱 ],然後按一下 [ 選擇專案 ]。 您也以程式設計方式存取與 ToolStripPanel 相似的任何其他類別。

ToolStripMenuStripStatusStrip 讓項目溢位。 這與在 Microsoft Office 工具列上那些項目的使用方式類似。

另請參閱