很早的时候,曾经写了一篇随笔《WinForm界面开发之“OutLookBar”工具条》介绍了OutLookBar样式的工具条,得到很多同行的热烈反馈,我个人也比较喜欢这样的工具条布局,因此我很多共享软件中,都经常看到这种OutLookBar的工具条,这种工具条提供了一种较好的界面布局,方便对工具的分类和排列。如我的多篇随笔《从开发的软件《备件仓库管理系统》总结的一些经验》、《WinForm界面开发之酒店管理系统--开篇》、《Winform开发框架之终极应用》等文章都有介绍,大致的效果如下所示。

本文介绍另外一种效果较好的OutLookBar工具条的实现,其思路来源于www.codeproject.com上的一篇介绍OutLook样式的导航条的文章《A Serious Outlook Style Navigation Pane Control》, 该篇文章给出了一个较好的OutLook样式的导航容器,但没提供完整的类似导航条的实现。从该篇文章启发,我结合了TreeView控件的效果,处理得到下面这种界面效果,和之前的OutLookBar样式有较为相似的地方,但体验效果会好一些,也提供更多的工具条控制和样式。

这些界面效果较原来的有一定的提供,而且可以根据需要调整OutLook导航条里面展示的内容,如TreeView、ListBox、Button等均可以放到里面空白区域中,提供较好的控制,下面介绍一下上面的效果代码实现,供大家参考。

1、首先先在一个空白的窗体中防止一个OutLook样式的导航控件,如下所示

2、实现代码如下所示

        #region NavigationBar代码实现

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

if (Portal.gc.HasFunction("Purchase"))
            {
                treeview1.Nodes.Add(new TreeNode("备件入库", 0, 0));
            }
            if (Portal.gc.HasFunction("TakeOut"))
            {
                treeview1.Nodes.Add(new TreeNode("备件出库", 1, 1));
            }
            if (Portal.gc.HasFunction("StockSearch"))
            {
                treeview1.Nodes.Add(new TreeNode("库存查询", 2, 2));
            }
            if (Portal.gc.HasFunction("ItemDetail"))
            {
                treeview1.Nodes.Add(new TreeNode("备件信息", 3, 3));
            }
            if (Portal.gc.HasFunction("Report"))
            {
                treeview1.Nodes.Add(new TreeNode("业务报表", 5, 5));
            }

TreeView treeview2 = new TreeView();
            treeview2.ShowLines = false;
            treeview2.ImageList = this.imageList;
            if (Portal.gc.HasFunction("Dictionary"))
            {
                treeview2.Nodes.Add(new TreeNode("数据字典", 4, 4));
            }  
            if (Portal.gc.HasFunction("WareHouse"))
            {
                treeview2.Nodes.Add(new TreeNode("库房管理", 6, 6));
            }

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

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

}

转载于:https://www.cnblogs.com/wuhuacong/archive/2011/08/02/2125563.html

Winform开发中另一种样式的OutLookBar工具条相关推荐

  1. 浅谈Web开发中的6种技术

    CSDN博客不再经常更新,更多优质文章请来 粉丝联盟网 FansUnion.cn! (FansUnion) Web开发中的6种技术 1.html 超文本标记语言,即HTML(Hypertext Mar ...

  2. Winform开发中手写签名的实现

    由于项目的需要,需要在项目的Winform系统的一个模块中集成手写签名的功能,一开始对这块不是很了解,只是了解他能够替代鼠标进行签名.既然是签名,一般就是需要记录手稿图片,作为一个记录核实的凭证,因为 ...

  3. WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色

    WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色  在B/S开发中,对TreeView控件要改变当前选中节点的颜色比较方便,其有相应的SelectedNodeChanged事件 ...

  4. 在Winform开发中使用FastReport创建报表

    FastReport.Net是一款适用于Windows Forms, ASP.NET和MVC框架的功能齐全的报表分析解决方案.可用在Microsoft Visual Studio 2005到2015, ...

  5. c#winform开发中DialogResult的用法

    1.DialogResult经常用在winform开发中的登录,设置参数中,在主窗体中弹出设置参数的窗体,当我们点击设置参数窗体上的确定按钮时,直接返回设置参数窗体的DialogResult的属性即可 ...

  6. java ee有哪些工具_JavaEE开发中最常用到的技术和工具汇总

    原标题:JavaEE开发中最常用到的技术和工具汇总 今天千锋广州小编给大家来介绍一下关于目前JavaEE开发中最常用到的技术和工具的介绍,下面我们一起来看一下吧. 项目管理:Ant,项目管理事实上的标 ...

  7. Polyworks脚本开发学习笔记(十七)-制作宏脚本自定义工具条

    Polyworks脚本开发学习笔记(十七)-制作宏脚本自定义工具条 做好的宏脚本程序,每次打开脚本加载程序太多麻烦,为了方便的调用脚本做各种操作,可以使用系统的自定义工具条功能将脚本加载到工具条上. ...

  8. React中的四种样式使用优缺点比较

    1.组件化天下下的CSS css的设计就不是为组件化而生的,所以在目前组件化的框架中都在需要一种合适的CSS解决方式. 组件化中选择合适的CSS解决方案应该符合以下条件: 1.可以编写局部的css:c ...

  9. Java开发中的23种设计模式详解(转)

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

最新文章

  1. 【资源分享】The Beatles(披头士)乐队所有专辑带封面
  2. 国内外有哪些不错的需求管理工具?如何选择?
  3. postgresql GUC 参数
  4. Silverlight Gantt轻量级高性能的甘特图
  5. java 替换四个字节的字符 '\xF0\x9F\x98\x84\xF0\x9F)的解决方案
  6. 信息检索的评价指标(Precision、Recall、F-score、MAP、ROC、AUC)
  7. 树莓派搭建TensorFlow
  8. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(二)魔法实习生第一步了解魔杖的使用
  9. TCP Congestion Control
  10. simulink学习仿真(微分模块、传递函数模块使用、波特图频率特性)day3
  11. GET http://127.0.0.1:8888/senchaApp3/src/NavigstionView.js?_dc=1397541249248 404 (Not Found)
  12. linux下几个压缩命令
  13. RTT 使用menuconfig 和cubeMux 在移植过来的模板工程上增加一个串口2
  14. (转)《精通比特币》原码分析:公钥、私钥、比特币地址
  15. 面试阿里(P8)竟被MySQL难倒,奋发图强二次面试斩获阿里offer
  16. arcgis js for JavaScript 4.X 移动轨迹动画
  17. wb在计算机知识里是什么意思,计算机二级考试内容是什么?
  18. JavaGUI:多功能计算器(四)--Swing实现双语悬停提示(源码升级说明)
  19. mac 启动台不显示已经安装的软件图标
  20. 联想小新padpro怎么样?测评值得买吗?详细性能点评

热门文章

  1. 一位40岁“老程序员”的经历,给你们说一些我的真实想法!
  2. 程序员如何高效的学习?
  3. java局部刷新session过期_Ajax局部页面刷新和History API结合的陷阱
  4. 进程间通信IPC(二)(共享内存、信号、信号量)
  5. linux库引入之动态库静态库(生成和使用)
  6. webrender 查看是否开启_想要体验极致顺滑的网页加载体验?手动开启Firefox WebRender渲染引擎...
  7. 实用 JavaScript 调试技巧
  8. 2020 前端技术发展回顾
  9. Delphi实现的透明阴影以及蒙版效果菜单
  10. Hyper-V 嵌套虚拟化