DevExpress navBarControl 和 xtraTabbedMdiManager实现浏览器标签页效果

一:navBarControl 属性设置

       工具箱中的Navigation & Layout选项卡下找到NavBarControl,拖到窗体中

       工具箱中添加2个imageCollection。分别设置Item的大小图标集合,选择相应图片添加到集合中。(大图标32*32,小图标16*16)

      

      navBarControl 属性面板中:

      Dock设置为Left  ; ParntStyleName皮肤样式,设置为SkinNav:Xmas 2008 Blue

       NavigationPaneMaxVisibleGroups,默认值为-1,显示全部Group; 修改为0,即一个都不显示

       Run Designer进行Group和Items的添加,Item添加好拖到相应的Group下面即可。

       

       Group属性——》GroupCaptionUseImage,为Group按钮添加图标,设置图标显示方式,小图标或大图标,默认显示小图标。

                              a:从ImageCollection集合中选择图片(设置LargeImageIndex / SmallImageIndex=0),设置成相应图片下标即可。

                              b:或者直接设置属性LargeImage / SmallImage 选择需要图标。

        Item属性——》 GroupStyle,为Item按钮添加图标,设置图标的显示样式,默认为图标在左边文字在右边,默认显示小图标。

                              LargeIconsText图标在上方,文字在下方。 添加图标同Group属性 a,b相同

二: xtraTabbedMdiManager实现浏览器标签页效果

       1:添加多文档标签界面:      

         public void OpenMDIWindow(String ChildTypeString, Object[] args)
        {
            if (String.IsNullOrWhiteSpace(ChildTypeString))
                return;

            var fullName = String.Format("{0}.{1}", GetType().Namespace, ChildTypeString);
            if (ContainMDIChild(fullName))
                return;

            Type typForm = Assembly.GetExecutingAssembly().GetType(fullName);
            if (typForm == null)
                return;

            Object obj = typForm.InvokeMember(
                null,
                BindingFlags.DeclaredOnly |
                BindingFlags.Public | BindingFlags.NonPublic |
                BindingFlags.Instance | BindingFlags.CreateInstance,
                null,
                null,
                args);

            if (obj == null)
                return;

            Form myChild = obj as Form;
            myChild.MdiParent = this;
            myChild.WindowState = FormWindowState.Maximized;
            myChild.Show();
        }
View Code

       2:判断是否已经显示该子窗体          

       //判断MDI中是否已存在当前窗体  
        private Boolean ContainMDIChild(String ChildTypeString)
        {
            foreach (Form f in MdiChildren)
            {
                if (f.GetType().ToString() == ChildTypeString)
                {
                    f.Select();
                    return true;
                }
            }
            return false;
        }
View Code

      3:navBarControl事件LinkPressed调用(注意:Item.Tag需要设置成窗体的Name

        private void navBarControl1_LinkPressed(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            if (e.Link.Item.Tag != null)
            {
                try
                {
                    OpenMDIWindow(e.Link.Item.Tag.ToString(), null);
                }
                catch (Exception ex)
                {
                    Log.WriteLog(ex.ToString(), UserInfo.LoginName);
                }
            }
        }
View Code

       最终效果图如下:

      

 

posted @ 2014-12-17 13:54  梦落轩辕  阅读(783)  评论(0编辑  收藏  举报