NavBarControl控件:主要做用是製做包含多個選項組而且每一個組裏包含多個子選項的導航欄;
工具
位於 工具箱 -> Navigation & Layout(導航欄與佈局類控件) 目錄下;佈局
在工具箱輸入名稱NavBarControl檢索,而後直接拖拽到面板上即可使用,最好是放在一個子容器裏(好比PanelControl);動畫
藍色爲經常使用屬性 紅色爲未知屬性、幾乎不會用到或不多用到的屬性、其餘託管屬性、暫時不須要咱們去處理的屬性spa
BarManager | |
MenuManager | (BarManager)菜單管理 |
佈局 | |
Anchor | (enum)控件錨點 通用屬性,設置Top、Bottom、Right、Left四個位置以使 控件在指定方位跟隨父容器變換而變換 |
Dock | (enum)控件在父容器中停靠方式 通用屬性,五個可選值設置使控件停靠在父容器的上下左 右四個方位或充滿整個父容器 |
Location(X,Y) | (int)控件的位置 通用屬性,上方Dock屬性爲None時生效 |
Size(W,H) | (int)控件的長寬 通用屬性,上方Dock屬性爲None時生效 |
行爲 | |
AllowDrop | (bool)是否接收用戶拖到控件上的數據 |
Enabled | (bool)控件是否激活 |
LinkSelectionMode | (enum)指定當前選中的項目是否保持選中 |
TabIndex | (int)tab鍵切換焦點的索引 |
TabStop | (bool)是否禁用tab鍵切換焦點 |
Visible | (bool)控件是否可見 |
數據 | |
Groups | (NavGroupCollection)當前導航欄的全部分組 |
Items | (NavItemCollection)當前導航欄的全部選項 |
外觀 | |
ActiveGroup |
(NavBarGroup)當前展開的分組,PaintStyle不爲 ExplorerBar(也就是同時只能有一個分組展開)時生效 |
Appearance | (NavBarAppearances)整個控件的外觀屬性設置,應用 於控件中的全部部件 |
HotTrackedGroupCursor | (enum)鼠標停在分組上的顯示樣式 |
HotTrackedItemCursor | (enum)鼠標停在選項上的顯示樣式 |
LargeImages | (ImageList)大圖標集合,可供控件下的其餘部件在其中 選擇本身的大圖標 |
LinkInterval | (int)行間距 |
LookAndFeel | 控件使用的皮膚 |
NavigationPaneGroupClientHeight | (int)導航面板組的高度,決定下方的分組欄目是否縮進 |
NavigationPaneMaxVisibleGroups | (int)導航面板最大可見分組 |
NavigationPaneOverflowPaneUse SmallImages |
(bool)導航窗格被縮進的分組是否使用小圖標 |
OptionsNavPane(導航窗格的選項設置) | |
AllowOptionsMenuItem | (bool)菜單項是否容許選擇 |
AnimationFramesCount | (int)導航欄縮進動畫的幀數 |
CollapsedNavpaneContentControl | (Control)整個導航欄縮進時顯示的控件 |
CollapsedWidth | (int)導航欄縮進時保持的寬度 |
ExpandButtonMode | (enum)導航欄縮進的方向,好比靠左仍是靠右 |
ExpandedWidth | (int)導航欄展開時的寬度 |
GroupImageShowMode | (enum)導航欄的分組在什麼狀況下才顯示圖標 |
MaxPopupFormWidth | (int)導航欄縮進時,點擊選項彈出的窗口最大值 |
NavPaneState | (enum)當前導航欄的狀態,是展開仍是縮進 |
ShowExpandButton | (bool)是否顯示導航欄縮進按鈕 |
ShowGroupImageInHeader | (bool)是否顯示當前已展開分組的圖標 |
ShowHeaderText | (bool)是否顯示當前已展開分組的名稱 |
ShowOverflowButton | (bool)是否顯示導航欄中分組的縮進按鈕 |
ShowOverflowPanel | (bool)是否顯示導航欄中分組的縮進平面 |
ShowSplitter | (bool)是否顯示分割線 |
PaintStyleKind | (enum)導航欄的模式,好比同時只容許展開一個分組 或者能夠多個分組一塊兒展開 |
PaintStyleName | (enum)導航欄的樣式 |
RightToLeft | (enum)導航欄是不是從右到左對齊 |
SkinExplorerBarViewScrollStyle | (enum)PaintStyleKind爲ExplorerBar模式時,內容超出 時的進度條顯示模式 |
SmallImages | (ImageList)控件的小圖標集合,對應當前項目中的任一 圖片集 |
Text | (string)控件的顯示內容 |
UseWaitCursor | (bool)鼠標通過此控件時是否切換爲等待狀態光標 |
拖入一個panel到窗口上作爲導航欄的容器,而後再拖入一個NavBarControl到其上,點擊NavBarControl控件的右上角三角箭頭展開任務列表,選擇PaintStyle模式爲Navigationpane,也就是同時最大展開的分組數目爲1。設計
點擊控件右上角三角箭頭展開任務列表,選擇Run Designer打開設計界面。code
設計界面的Main -> Groups/Items/Links爲導航欄的分組及子項目編輯界面,咱們進入此界面,在右側的NavBar Groups窗口內點擊鼠標焦點至此窗口時,上方的添加按鈕能夠添加新的分組,在右側的NavBar Items窗口內點擊鼠標焦點至此窗口時,上方的添加按鈕能夠添加新的子項目,選中每一個分組或子項目能夠在右側的屬性窗口快捷設置他的經常使用屬性,添加好了多個分組和子項目時,須要將子項目指定到某一分組內,直接用鼠標拖動NavBar Items中的子項目到NavBar Groups中的該分組下。orm
咱們建立好了多個分組和子項目後,直接點擊運行,查看此時的效果。blog
捕獲導航欄子項目的鼠標點擊事件LinkClicked:索引
public Form1() { InitializeComponent(); OtherInit(); } /// <summary> /// 其餘的初始化處理 /// </summary> private void OtherInit() { navBarItem1.LinkClicked += Item_Click; navBarItem2.LinkClicked += Item_Click; navBarItem3.LinkClicked += Item_Click; navBarItem4.LinkClicked += Item_Click; navBarItem5.LinkClicked += Item_Click; navBarItem6.LinkClicked += Item_Click; navBarItem7.LinkClicked += Item_Click; navBarItem8.LinkClicked += Item_Click; navBarItem9.LinkClicked += Item_Click; } /// <summary> /// 導航欄子項目的點擊事件 /// </summary> private void Item_Click(object sender, NavBarLinkEventArgs e) { MessageBox.Show("點擊了子項目:" + e.Link.Caption); }
只須要根據數據動態的建立分組和子項目,並將子項目添加到分組之下:事件
NavBarGroup nbGroup1 = new NavBarGroup(); nbGroup1.Name = "nbGroup1"; nbGroup1.Caption = "動態添加的分組"; nbGroup1.SmallImageIndex = -1; nbGroup1.LargeImageIndex = -1; //添加到導航欄全部分組集合 navBarControl1.Groups.Add(nbGroup1); NavBarItem nbItem1 = new NavBarItem(); nbItem1.Name = "nbItem1"; nbItem1.Caption = "動態添加的子項目"; nbItem1.SmallImageIndex = -1; nbItem1.LargeImageIndex = -1; nbItem1.LinkClicked += Item_Click; //添加到導航欄全部子項目集合 navBarControl1.Items.Add(nbItem1); //添加子項目至某一分組 nbGroup1.ItemLinks.AddRange(new NavBarItemLink[] { new NavBarItemLink(nbItem1) });