功能
使用 ToolStrip 控制項可以:
創建易於自定義的常用工具列,讓這些工具列支持高級用戶界面和布局功能,如停靠、漂浮、帶文本和圖像的按鈕、下拉按鈕和控制項、“溢出”按鈕和 ToolStrip 項的運行時重新排序。
支持作業系統的典型外觀和行為。
對所有容器和包含的項進行事件的一致性處理,處理方式與其他控制項的事件相同。
將項從一個 ToolStrip 拖到另一個 ToolStrip 內。
使用 ToolStripDropDown 中的高級布局創建下拉控制項及用戶界面類型編輯器。
通過使用 ToolStripControlHost 類來使用 ToolStrip 中的其他控制項,並為它們獲取 ToolStrip 功能。
通過使用 ToolStripRenderer、ToolStripProfessionalRenderer 和 ToolStripManager 以及 ToolStripRenderMode 枚舉和 ToolStripManagerRenderMode 枚舉,可以擴展此功能並修改外觀和行為。
控制項
ToolStrip 控制項為高度可配置的、可擴展的控制項,它提供了許多屬性、方法和事件,可用來自定義外觀和行為。以下為一些值得注意的成員:
名稱 說明
Dock
獲取或設定 ToolStrip 停靠在父容器的哪一邊緣。
AllowItemReorder
獲取或設定一個值,讓該值指示拖放和項重新排序是否專門由 ToolStrip 類進行處理。
LayoutStyle
獲取或設定一個值,讓該值指示 ToolStrip 如何對其項進行布局。
獲取或設定是將 ToolStripItem 附加到 ToolStrip,附加到 ToolStripOverflowButton,還是讓它在這兩者之間浮動。
IsDropDown
獲取一個值,該值指示單擊 ToolStripItem 時,ToolStripItem 是否顯示下拉列表中的其他項。
OverflowButton
獲取 ToolStripItem,它是啟用了溢出的 ToolStrip 的“溢出”按鈕。
Renderer
獲取或設定一個 ToolStripRenderer,用於自定義 ToolStrip 的外觀和行為(外觀)。
RenderMode
獲取或設定要套用於 ToolStrip 的繪製樣式。
RendererChanged
當 Renderer 屬性更改時引發。
通過使用多個伴隨類可以實現 ToolStrip 控制項的靈活性。以下為一些最值得注意的伴隨類:
重要的 ToolStrip 伴隨類
名稱 說明
MenuStrip
替換 MainMenu 類並添加功能。
StatusStrip
替換 StatusBar 類並添加功能。
ContextMenuStrip
替換 ContextMenu 類並添加功能。
ToolStripItem
抽象基類,它管理 ToolStrip、ToolStripControlHost 或 ToolStripDropDown 可以包含的所有元素的事件和布局。
ToolStripContainer
提供一個容器,在該容器中
窗體的每一側均帶有一個面板,面板中的控制項可以按多種方式排列。
ToolStripRenderer
處理 ToolStrip 對象的繪製功能。
ToolStripProfessionalRenderer
提供 Microsoft Office 樣式的外觀。
ToolStripManager
控制 ToolStrip 呈現和漂浮,並控制 MenuStrip 對象、ToolStripDropDownMenu 對象和 ToolStripMenuItem 對象的合併。
ToolStripManagerRenderMode
指定套用於
窗體中的多個 ToolStrip 對象的繪製樣式(自定義、Windows XP 或 Microsoft Office Professional)。
ToolStripRenderMode
指定套用於窗體中的一個 ToolStrip 對象的繪製樣式(自定義、Windows XP 或 Microsoft Office Professional)。
ToolStripControlHost
承載不是明確的 ToolStrip 控制項、但您需要為其提供 ToolStrip 功能的其他控制項。
ToolStripItemPlacement
指定是在主 ToolStrip 中對 ToolStripItem 進行布局,是在溢出 ToolStrip 中對它進行布局,還是都不進行布局。
技術
本主題概括介紹 ToolStrip 控制項以及支持使用該控制項的類的相關信息。
ToolStrip 控制項及其關聯的類為創建
工具列、
狀態欄和選單提供了完整的解決方案。
System.Windows.Forms
背景
通過 ToolStrip 控制項及其關聯的類,可以創建具有一致的專業外觀和行為的高級工具列功能。與以前的控制項相比,ToolStrip 控制項和類提供了以下改進:
更為一致的事件模型。
包含任務列表和項集合編輯器的更加一致的設計時行為。
通過 ToolStripManager 和 ToolStripRenderer 進行自定義呈現。
具有 ToolStripContainer 和 ToolStripPanel 的內置漂浮(在停靠時共享工具區域內的水平或垂直空間)。
通過 AllowItemReorder 屬性在設計時和運行時對項重新排序。
通過 CanOverflow 屬性將項
重定位到溢出選單。
具有 ToolStripContainer、ToolStripPanel 和 ToolStripContentPanel 的完全可配置的控制項位置。
使用 ToolStripControlHost 承載 ToolStrip、傳統控制項或
自定義控制項。
使用 ToolStripPanel 合併 ToolStrip 控制項。
ToolStrip 是 MenuStrip、ContextMenuStrip 和 StatusStrip 的可擴展基類。這些控制項是 ToolStripItem 容器,它們繼承了常見的行為和事件處理,並進行了擴展,使每個實現都可以處理與它相應的行為。下表列出了從 ToolStripItem 派生的控制項。基 ToolStrip 類處理這些控制項的繪製、用戶輸入和拖放事件。
ToolStrip、MenuStrip、ContextMenuStrip、StatusStrip 和 ToolStripDropDown 控制項取代了以前的
工具列、選單、
狀態欄和快捷選單控制項,不過為了
向後兼容還是保留了這些控制項。
類別
下表顯示了按技術領域分組的 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 中,單擊設計器中的控制項上的
智慧型標記可以顯示一個任務列表,通過它可方便地訪問許多常用的命令。
Topic Location
“ContextMenuStrip 任務”對話框 Windows
窗體編程
“ContextMenuStrip 任務”對話框 Windows 窗體編程
“MenuStrip 任務”對話框 Windows 窗體編程
“MenuStrip 任務”對話框 Windows 窗體編程
“StatusStrip 任務”對話框 Windows 窗體編程
“StatusStrip 任務”對話框 Windows 窗體編程
“ToolStrip 任務”對話框 Windows 窗體編程
“ToolStrip 任務”對話框 Windows 窗體編程
“ToolStripContainer 任務”對話框 Windows 窗體編程
“ToolStripContainer 任務”對話框 Windows 窗體編程
項集合編輯器
在 Visual Studio 中,當單擊任務列表上的“編輯項”或右擊控制項並選擇
快捷選單中的“編輯項”時,將顯示控制項的集合編輯器。使用集合編輯器可以添加、移除和重新排序控制項包含的項。還可以查看和更改控制項及控制項項的屬性。
Topic Location
ContextMenuStrip 項集合編輯器 Windows 窗體編程
ContextMenuStrip 項集合編輯器 Windows 窗體編程
MenuStrip 項集合編輯器 Windows 窗體編程
MenuStrip 項集合編輯器 Windows 窗體編程
StatusStrip 項集合編輯器 Windows 窗體編程
StatusStrip 項集合編輯器 Windows 窗體編程
ToolStrip 項集合編輯器 Windows 窗體編程
ToolStrip 項集合編輯器 Windows 窗體編程
承載控制項
ToolStripControlHost 類為 ToolStripComboBox、ToolStripTextBox 和 ToolStripProgressBar 控制項提供內置包裝。您也可以在 ToolStripControlHost 中承載其他任何現有控制項或 COM 控制項。
有關控制項承載的示例,請參見如何:使用 ToolStripControlHost 包裝 Windows
窗體控制項。
呈現
ToolStrip 類實現的呈現方案與其他 Windows 窗體控制項有顯著的不同。通過此方案,您可以輕鬆地套用樣式和主題。
若要將某個樣式套用於 ToolStrip 及其包含的所有 ToolStripItem 對象,您無需對每個項都處理 Paint 事件。您可以將 RenderMode 屬性設定為一個除 Custom 以外的 ToolStripRenderMode 值。另外,您還可以直接將 Renderer 設定為從 ToolStripRenderer 類繼承的任何類。設定此屬性將自動設定 RenderMode。
通過將 RenderMode 設定為 ManagerRenderMode,並將 RenderMode 或 Renderer 屬性分別設定為所需的 ToolStripManagerRenderMode 或 ToolStripRenderer 值,便可以將同一種樣式套用於同一應用程式中的多個 ToolStrip 對象。