Winform开发中另一种样式的OutLookBar工具条

很早的时候,曾经写了一篇随笔《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("备件入库"00));
            }
            
if (Portal.gc.HasFunction("TakeOut"))
            {
                treeview1.Nodes.Add(
new TreeNode("备件出库"11));
            }
            
if (Portal.gc.HasFunction("StockSearch"))
            {
                treeview1.Nodes.Add(
new TreeNode("库存查询"22));
            }
            
if (Portal.gc.HasFunction("ItemDetail"))
            {
                treeview1.Nodes.Add(
new TreeNode("备件信息"33));
            }
            
if (Portal.gc.HasFunction("Report"))
            {
                treeview1.Nodes.Add(
new TreeNode("业务报表"55));
            }

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

            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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用小知识

在linux 上生成一个字符串的MD5 ,可以直接用linux 上的命令:#md5sumecho -n ’123456′ | md5sum 这样及可。vi 使用:^ 到行首$ 到行尾yy 复制一行p 粘贴u 回退-------------------------------------------------------------------she…

重构的小故事 Change Value to Reference or Vice Verse

值和引用&#xff0c;有时候程序员因为熟悉而忽略了它们之间的区别&#xff0c;因此使用的时候也就不做选择信手拈来。得到预期结果就行&#xff0c;得不到预期结果就换下试试&#xff0c;毕竟两者有其一。那到底是值还是引用呢&#xff1f;有这样一个生活中的故事。<?xml:…

r语言主成分分析_PCA主成分分析

PCA主成分分析最近遇到了主成分分析法这个东西&#xff0c;一开始我觉得简直天才啊&#xff0c;这个想法虽然从经济意义上来解释有点奇怪&#xff0c;毕竟是数学方法计算出来的解释因子&#xff0c;但鉴于没人知道现实世界究竟被多少因素影响&#xff0c;这种方法可以将最主要的…

宫崎骏动画里的新垣结衣见过没?简直美呆!

全世界只有3.14 % 的人关注了爆炸吧知识本文经机器之心&#xff08;ID&#xff1a;almosthuman2014&#xff09;授权转载参与&#xff1a;肖清、思尽管最近 2019 年的图灵奖颁给了计算机图形学、颁给了皮克斯 3D 动画&#xff0c;但很多人可能认为二维动漫更有意思一些。像宫崎…

更了吗?Windows 11 22000.184 推送

面向 Beta 频道的 Windows 预览体验成员&#xff0c;微软现已发布 Windows 11 预览版 Build 22000.184。Windows 11 Insider Preview Build 22000.184 主要变化如下&#xff1a;1.微软现已修复在Windows 11 OOBE&#xff08;开箱体验&#xff09;阶段了解 Windows Hello 更多详…

java 快速io_如何快速理解Java的IO流

初学者觉得IO流复杂是很正常的&#xff0c;归根结底是没有理解JavaIO框架的设计思想&#xff1a;可以沿着这条路想一想&#xff1a;1&#xff0c;学IO流之前&#xff0c;我们写的程序&#xff0c;都是在内存里自己跟自己玩。比如&#xff0c;你声明个变量&#xff0c;创建个数组…

Effective C++ 学习笔记(11)

确定基类有虚析构函数 class A{public: A() { cout<<"A constructor"<<endl; }~A() { cout<<"A destructor"<<endl; }};class B: public A{public: B() { cout<<"B constru…

微软职位内部推荐-Software Development Engineer 2

微软近期Open的职位:SDE IIOrganization Summary:Engineering, Customer interactions & Online (ECO) is looking for a great "Software Development Engineer" to join our team. Customer support is a strategic differentiator for Microsoft and we are i…

C#判断某软件是否安装

代码 privatevoidbutton1_Click(objectsender, EventArgs e) { if(checkAdobeReader() true) { MessageBox.Show("有安裝 Adobe Reader "); } else{ MessageBox.Show("沒有安裝 Adobe Reader "); } …

男朋友和女朋友的区别。。。

1 区别于这耳光来的也是猝不及防。。。2 铲屎官做的一个防止猫咪抢食的装置大概就是这只橘猫保持苗条的秘籍吧3 学生时代的爱情大概就是这样吧。。4 这样的哥哥给我来一打&#xff01;5 据我多年经验&#xff0c;应该是溺水身亡了6 治婊专家陈豪&#xff0c;专业补刀二十年&…

如何在 C# 循环中捕获局部变量?

咨询区 Morgan Cheng&#xff1a;我遇到了一个有趣的问题&#xff0c;它的代码大概是这样的。List<Func<int>> actions new List<Func<int>>();int variable 0; while (variable < 5) {actions.Add(() > variable * 2); variable; }foreach (v…

java创建计数器变量,用于检查变量(计数器)最大长度的Java方法

Kindly please anyone who knows is the any method to knowwhat is the limit of length of a counter?Depsite from initiliazed variables types (either int, byte, long etc)is there any way for me to check my variable (counter)s max lenght?Please share the info…

【原创】Newlife.XCode的常见功能使用(一)查询与数据初始化

本博客所有文章分类的总目录&#xff1a;http://www.cnblogs.com/asxinyu/p/4288836.html Newlife XCode组件相关文章目录&#xff1a;http://www.cnblogs.com/asxinyu/p/4329747.html 1.前言 声明&#xff1a;此Newlife.XCode非Mac的XCode&#xff0c;避免误会。 1.QQ群:16008…

IronRuby - 如何在VS2010下调试IronRuby代码

在OpenExpressApp &#xff0d; 使用VS2010的CodedUI来做自己的自动化测试框架中介绍了我将使用IronRuby进行测试框架的编写。虽然Ruby已经非常的流行&#xff0c;我所在公司有的项目也深入的应用过&#xff0c;但它对于我来说还是非常新的&#xff0c;对它的认识也就是快速的看…

python七夕快乐图片_提前祝七夕快乐图片

1.微信朋友圈圣诞快乐图片制作 轻松获得无数点赞朋友圈是当下人们经常浏览的社交空间&#xff0c;倘若自己的发文得到很多点赞&#xff0c;这就成了一件很有面子的事情。今天小编要教大家的就是微信朋友圈圣诞快乐图片制作&#xff0c;学会后就不愁在朋友圈吸引眼球获得点赞啦&…

AgileConfig轻量级配置中心1.4.0发布,重构了发布功能

加入 NCC 先说一个事&#xff0c;AgileConfig 在 7 月底终于通过了 NCC 社区的审核&#xff0c;正式成为了 NCC 大家庭的一员。这对 AgileConfig 来说是一个里程碑&#xff0c;希望加入 NCC 后能更好的帮助到大家。同时责任也更大了&#xff0c;本人会一如既往的对这个项目维护…

你为什么不爱发朋友圈了?

全世界只有3.14 % 的人关注了爆炸吧知识想发自拍、想秀恩爱、想分享生活状态但一想到别人指手画脚的评论发朋友圈这件事便索然失味人生是不是已经了无生趣了呢关注以下这几个优质订阅号远离朋友圈的日子令你耳目一新不信你就扫码试试RSS精选ID&#xff1a;KindleNewsRSS精选是一…

控制台编写JAVA程序教程_写一个java程序的步骤是什么?写java程序技巧

写Java程序是要按照步骤来的&#xff0c;这样才能写好一个java程序&#xff0c;那么接下来&#xff0c;我们就来给大家讲解一下写一个java程序的步骤是什么?(1)创建Java项目&#xff1a;“FileNewProjectJava Project”;(2)创建Java源程序&#xff1a;“FileNewOtherClass”;(…

IE6下z-index犯癫不起作用bug的初步研究

by zhangxinxu from http://www.zhangxinxu.com 本文地址&#xff1a;http://www.zhangxinxu.com/wordpress/?p471 一、匆匆带过的概念 关于CSS中层级z-index的定义啊什么的不是本文的重点&#xff0c;不会花费过多篇幅详细讲述。这里就简单带过&#xff0c;z-index伴随着层的…

C#读取INI文件

虽然微软早已经建议在WINDOWS中用注册表代替INI文件&#xff0c;但是在实际应用中&#xff0c;INI文件仍然有用武之地&#xff0c;尤其现在绿色软件的流行&#xff0c;越来越多的程序将自己的一些配置信息保存到了INI文件中。 INI文件是文本文件,由若干节(section)组成,在每个带…