控件用途
Navbarcontrol功能很強(qiáng)大,dev 目前也是winform/wpf/asp .new mvc 非?;鸬目丶?,本文主要介紹導(dǎo)航控件的用法,多用于菜單導(dǎo)航,官方給出demo 如下,今天我們主要講winform的使用;
控件使用
首先看下navbar 有哪些屬性,這些都是布局屬性,比如PaintStyleKind 可以選擇不同的外觀展示風(fēng)格,也可以設(shè)定顯示圖標(biāo),
增加顯示菜單,效果如下
但是navbar 只能顯示兩層菜單,這是官方給出的說法,如果想要顯示多級菜單,我們還需要配合TreeList 使用,需要自己寫代碼進(jìn)行實現(xiàn),這里我們將做一個演示,最后會給出最終效果圖;
首先我們要找出頂級菜單,來建立navbar 所需要的navbargroup,代碼如下
//查詢頂級菜單
var ltTop = ltMenu.FindAll(x => string.IsNullOrWhiteSpace(x.ParentNo)).OrderBy(x => x.SEQNO).ToList();
//循環(huán)建立navgroup
for (int i = 0; i < ltTop.Count; i++)
{
NavBarGroupControlContainer container = new NavBarGroupControlContainer();
nbcMenu.Controls.Add(container);
//添加Group
NavBarGroup group = new NavBarGroup();
group.Name = ltTop[i].FuncId;
//功能名稱
group.Caption = ltTop[i].FuncName;
group.ControlContainer = container;
//是否展開
group.Expanded = true;
group.GroupClientHeight = 300;
group.AppearanceBackground.BackColor = Color.White;
group.AppearanceBackground.BackColor2 = Color.White;
group.Appearance.BackColor = Color.White;
group.Appearance.BackColor2 = Color.White;
group.ImageOptions.LargeImage = image;
group.ImageOptions.SmallImage = image;
//
}
至此我們navbargroup 添加完成,但是我們多層級的還未建立,還需要在循環(huán)里添加Treelist 菜單,代碼如下
var tl = GetTreeList();
var ltChildMenu = FindNodeAllMenu(ltMenu, ltTop[i].FuncId);//ltMenu.FindAll(x => x.ParentNo == ltTop[i].FuncId).OrderBy(x => x.SEQNO).ToList();
tl.DataSource = ltChildMenu;
tl.ParentFieldName = "ParentNo";
tl.KeyFieldName = "FuncId";
tl.RefreshDataSource();
container.Controls.Add(tl);
nbcMenu.Groups.Add(group);
TreeList 獲取方法文章來源:http://www.zghlxwxcb.cn/news/detail-567222.html
private TreeList GetTreeList()
{
TreeList tl = new TreeList();
tl.Appearance.FocusedCell.BackColor = System.Drawing.Color.LightCyan;
tl.Appearance.FocusedCell.BackColor2 = System.Drawing.Color.LightCyan;
tl.Appearance.FocusedCell.Options.UseBackColor = true;
tl.Appearance.FocusedRow.BackColor = System.Drawing.Color.LightCyan;
tl.Appearance.FocusedRow.BackColor2 = System.Drawing.Color.LightCyan;
tl.Appearance.FocusedRow.Options.UseBackColor = true;
tl.Appearance.Row.Font = new System.Drawing.Font("微軟雅黑", 9.5F);
tl.Appearance.Row.Options.UseFont = true;
//新增欄位
var tlColumn = new TreeListColumn();
tlColumn.Caption = "treeListColumn1";
tlColumn.FieldName = "FuncName";
tlColumn.MinWidth = 28;
tlColumn.Name = "treeListColumn2";
tlColumn.OptionsColumn.AllowEdit = false;
tlColumn.Visible = true;
tlColumn.VisibleIndex = 0;
tlColumn.Width = 104;
tl.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] {
tlColumn});
tl.Dock = System.Windows.Forms.DockStyle.Fill;
tl.Location = new System.Drawing.Point(0, 0);
tl.MinWidth = 18;
tl.Name = "tlSubMenuList";
tl.OptionsMenu.ShowExpandCollapseItems = false;
tl.OptionsView.FocusRectStyle = DevExpress.XtraTreeList.DrawFocusRectStyle.RowFullFocus;
tl.OptionsView.ShowColumns = false;
tl.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark;
tl.SelectImageList = this.imageCollection1;
tl.Size = new System.Drawing.Size(314, 78);
tl.TabIndex = 7;
tl.TreeLevelWidth = 16;
//注冊事件
tl.CustomDrawNodeImages += Tl_CustomDrawNodeImages;//注冊繪制圖片
tl.DoubleClick += Tl_DoubleClick;//雙擊菜單
tl.MouseUp += Tl_MouseUp;//
return tl;
}
至此使用navbar 創(chuàng)建完成,其中treelist 的雙擊菜單事件需要大家各自完成,最終實現(xiàn)的效果圖如下文章來源地址http://www.zghlxwxcb.cn/news/detail-567222.html
到了這里,關(guān)于Dev控件使用之導(dǎo)航控件NavBarControl的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!