95992828九五至尊2

Winform开采中另一种体制的OutLookBar工具条882828九五至尊手机版,WinForm分界面开垦之

四月 15th, 2019  |  882828九五至尊手机版

很早的时候,曾经写了1篇小说《WinForm界面开垦之“OutLookBar”工具条》介绍了OutLookBar样式的工具条,获得广咸宁行的凶猛反馈,笔者个人也比较喜欢那样的工具条布局,因而作者无数共享软件中,都通常见到那种OutLookBar的工具条,那种工具条提供了一种较好的分界面布局,方便对工具的分类和排列。如笔者的多篇小说《从开垦的软件《备件商旅产和土地资金财产管理理类别》计算的有个别经验》、《WinForm分界面开荒之旅舍管理连串–开篇》、《Winform开采框架之巅峰应用》等小说都有介绍,大概的效果如下所示。

在数不胜数软件界面中,三个好的分界面、方便的导航除了为软件增色不少外,也提升了用户体验,促进软件的良性发展,因为大家的软件壹般需求有菜单、工具条、状态条等那些骨干的东西,不过工具条本身应当是有的常用的快速键,内容不能够放置太多,不然会轻易给客户凌乱的痛感。菜单条则足以分类,可是好像每趟去点击,一步步浓密,则展现相比较辛劳。本篇作者介绍一下2个很好的领航条OutlookBar控件。

882828九五至尊手机版 1 

在自家的二个版本的送水软件中,都用到了OutLookBar的工具条,使用的分界面效果如下所示。

正文介绍别的一种作用较好的OutLookBar工具条的达成,其思路来源于www.codeproject.com上的1篇介绍OutLook样式的导航条的篇章《A
Serious Outlook Style Navigation Pane
Control
》,
该篇文章给出了一个较好的OutLook样式的导航容器,但没提供整机的好像导航条的贯彻。从该篇小说启发,笔者结合了TreeView控件的成效,处理获得上边那种分界面效果,和前边的OutLookBar样式有较为1般的地点,但体验效果会好一些,也提供越来越多的工具条调整和体制。

882828九五至尊手机版 2                   

882828九五至尊手机版 3 

882828九五至尊手机版 4

 882828九五至尊手机版 5

左边的工具条它们都以同八个控件来的,控件提供了一种类似Outlook格局的工具条,用来切换各样事情窗口,用上这么些控件,分明为你的次序增色不少。这几个控件结合方面介绍的布局控件”WeifenLuo.WinFormsUI.Docking”(具体见小说WinForm分界面开拓之布局控件”WeifenLuo.WinFormsUI.Docking”的施用),那么效果会越来越好。下边介绍下什么样在代码中应用那几个Outlookbar工具控件。

 这一个分界面效果较原先的有必然的提供,而且能够依照供给调控OutLook导航条里面显示的始末,如TreeView、ListBox、Button等均能够放置里面一无所获区域中,提供较好的垄断(monopoly),上面介绍一下地点的功能代码完成,供大家参考。

 一、首先创造多个窗体,用来放置该控件,由于该控件不是一个可视化的控件,因而须求做1些专程的拍卖,如加多2个ImageList控件,并把OutlookBar控件中用到的Logo加载进来,记得选用部分赏心悦目的图纸哦。

一、首先先在一个空荡荡的窗体中幸免三个OutLook样式的领航控件,如下所示

882828九五至尊手机版 6

 882828九五至尊手机版 7

2、在MainToolWindow窗体的构造函数大概Load事件中加多OutlookBar的起头化代码和设置代码,如下所示。

2、完结代码如下所示 

       private OutlookBar outlookBar1 = null;

        #region NavigationBar代码实现

        public MainToolWindow()
        {
            InitializeComponent();

        private void InitNaviBar()
        {
            TreeView treeview1 = new TreeView();
            treeview1.ShowLines = false;
            treeview1.ImageList = this.imageList;

            InitializeOutlookbar();            
        }

            if (Portal.gc.HasFunction(“Purchase”))
            {
                treeview壹.Nodes.Add(new TreeNode(“备件入库”, 0, 0));
            }
            if (Portal.gc.HasFunction(“TakeOut”))
            {
                treeview一.Nodes.Add(new TreeNode(“备件出库”, 一, 壹));
            }
            if (Portal.gc.HasFunction(“StockSearch”))
            {
                treeview一.Nodes.Add(new TreeNode(“仓库储存查询”, 2, 二));
            }
            if (Portal.gc.HasFunction(“ItemDetail”))
            {
                treeview一.Nodes.Add(new TreeNode(“备件音信”, 3, 三));
            }
            if (Portal.gc.HasFunction(“Report”))
            {
                treeview一.Nodes.Add(new TreeNode(“业务报表”, 5, 5));
            }

        private void InitializeOutlookbar()
        {
            outlookBar1 = new OutlookBar();

            TreeView treeview2 = new TreeView();
            treeview2.ShowLines = false;
            treeview2.ImageList = this.imageList;
            if (Portal.gc.HasFunction(“Dictionary”))
            {
                treeview2.Nodes.Add(new TreeNode(“数据字典”, 4, 四));
            }  
            if (Portal.gc.HasFunction(“WareHouse”))
            {
                treeview二.Nodes.Add(new TreeNode(“库房产和土地资金财产管理理”, 6, 6));
            }

            #region 出卖管制
              OutlookBarBand outlookShortcutsBand = new OutlookBarBand(“出卖管理”);
            outlookShortcutsBand.SmallImageList = this.imageList;
            outlookShortcutsBand.LargeImageList = this.imageList;
            outlookShortcutsBand.Items.Add(new OutlookBarItem(“订单管理”, 0));
            outlookShortcutsBand.Items.Add(new OutlookBarItem(“客户管理”, 一));
            outlookShortcutsBand.Items.Add(new OutlookBarItem(“水票管理”, 二));
            outlookShortcutsBand.Items.Add(new OutlookBarItem(“套餐管理”, 叁));
            outlookShortcutsBand.Items.Add(new OutlookBarItem(“后天盘点”, 五));
            outlookShortcutsBand.Items.Add(new OutlookBarItem(“来电记录”, 6));
            outlookShortcutsBand.Items.Add(new OutlookBarItem(“送货记录”, 7));
            outlookShortcutsBand.Background = SystemColors.AppWorkspace;
            outlookShortcutsBand.TextColor = Color.White;
            outlookBar1.Bands.Add(outlookShortcutsBand);
            
            #endregion

            treeview1.Dock = DockStyle.Fill;
            this.naviBand1.ClientArea.Controls.AddRange(new Control[] { treeview1 });

            #region 产品仓库储存管理
              OutlookBarBand mystorageBand = new OutlookBarBand(“产品仓库储存管理”);
            mystorageBand.SmallImageList = this.imageList;
            mystorageBand.LargeImageList = this.imageList;
            mystorageBand.Items.Add(new OutlookBarItem(“产品质量管理理理”, 二));
            mystorageBand.Items.Add(new OutlookBarItem(“仓库储存管理”, 叁));
            mystorageBand.Background = SystemColors.AppWorkspace;
            mystorageBand.TextColor = Color.White;
            outlookBar1.Bands.Add(mystorageBand); 
            #endregion

            treeview2.Dock = DockStyle.Fill;
            this.naviBand2.ClientArea.Controls.AddRange(new Control[] { treeview2 });

            882828九五至尊手机版 8882828九五至尊手机版 9882828九五至尊手机版 10882828九五至尊手机版 11882828九五至尊手机版 12882828九五至尊手机版 13882828九五至尊手机版 14882828九五至尊手机版 15882828九五至尊手机版 16.
            
            outlookBar1.Dock = DockStyle.Fill;
            outlookBar1.SetCurrentBand(0);
            outlookBar1.ItemClicked += new OutlookBarItemClickedHandler(OnOutlookBarItemClicked);
            outlookBar1.ItemDropped += new OutlookBarItemDroppedHandler(OnOutlookBarItemDropped);

  
      } 

            //outlookBar1.FlatArrowButtons = true;
            this.panel1.Controls.AddRange(new Control[] { outlookBar1 });
        }

 

        private void OnOutlookBarItemClicked(OutlookBarBand band, OutlookBarItem item)
        {
            switch (item.Text)
            {
                #region 出卖管制

                  case “订单管理”:
                    Portal.gc.MainDialog.ShowContent(“订单管理”, typeof(FrmOrder));
                    break;
                case “客户管理”:
                    Portal.gc.MainDialog.ShowContent(“客户管理”, typeof(FrmCustomer));
                    break;
                case “水票管理”:
                    Portal.gc.MainDialog.ShowContent(“水票管理”, typeof(FrmTicketHistory));
                    break;
                case “套餐管理”:
                    FrmYouhui dlg = new FrmYouhui();
                    dlg.ShowDialog();
                    break;
                case “来电记录”:
                    Portal.gc.MainDialog.ShowContent(“来电记录”, typeof(FrmComingCall));
                    break;
                case “送货记录”:
                    Portal.gc.MainDialog.ShowContent(“送货记录”, typeof(FrmDeliving));
                    break;

                #endregion

                #region 产品仓库储存管理
                  case “产品质量管理理理”:
                    Portal.gc.MainDialog.ShowContent(“产品质管理理”, typeof(FrmProduct));
                    break;
                case “库存管理”:
                     Portal.gc.MainDialog.ShowContent(“仓库储存管理”, typeof(FrmStock));
                    break; 
                #endregion

                882828九五至尊手机版 17882828九五至尊手机版 18882828九五至尊手机版 19882828九五至尊手机版 20882828九五至尊手机版 21882828九五至尊手机版 22882828九五至尊手机版 23882828九五至尊手机版 24882828九五至尊手机版 25882828九五至尊手机版 26882828九五至尊手机版 27..

                default:
882828九五至尊手机版,                    break;
            }
        }

        private void OnOutlookBarItemDropped(OutlookBarBand band, OutlookBarItem item)
        {
            //            string message = “Item : ” + item.Text + ” was dropped882828九五至尊手机版 28“;
            //            MessageBox.Show(message);            
        }

 

在代码中注意绑定相关品种的Logo序号,否则壹旦序号不得法,可能会出错的,其实任何控件便是提供体现壹些Logo,并用一样的风浪对鼠标的风云进展处理,用户依据OutlookBarItem的文本内容来推断处理,即便格局有点滑坡,不过个人以为控件依旧要命好用,方便。

末段呈上有关的控件文件:http://files.cnblogs.com/wuhuacong/UtilityLibrary.rar

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图