Tag:开源控件 , 源码下载 , 控件开发 , 控件美化 , 窗体换肤 , Skin , QQ表情 , Windows API , GDI+编程 , SQLite , Socket , 控件透明 , 下拉控件 , HTML 解析器 , 图片水印 , ScrollBar(滚动条) , Google Sitemap , 数据库 , SQL , WinForm , P/Invoke , C# QQ抽屉控件 , 自定义控件开发

 
您的位置: >> 首页 >> C# 视角 >> C# 自定义控件开发<一> QQ抽屉控件的实现

C# 自定义控件开发<一> QQ抽屉控件的实现

2010-08-12  来自:CS 程序员之窗  字体大小:【  
  • 摘要:QQ2008的分组抽屉控件美观而且让用户非常方便使用,本文介绍C#怎样来实现QQ2008样式的抽屉控件、带有标题的Panel控件和圆角边框的Panel控件。

前面已经写了不少控件美化和换肤的文章,以后打算写一些C#自定义控件开发的系列文章,以便学习C#怎样开发自己需要的特殊功能的控件。本文主要是介绍C#实现想QQ2008那样的抽屉控件,在实现这个控件时,顺便也实现了带有标题的Panel控件和圆角边框的Panel控件,最终的控件效果如下图:

 

    首先来看一下一个对象之间的关系图,然后对应关系图来说明每个对象实现的内容,关系图如下:

 

1、  PanelBase继承Pnael控件,主要实现了一些基本功能的定义和控件背景的绘制。例如:边框圆角的大小(Raius)和圆角的样式(RoundStyle)等。

2、  BorderPanel继承PanelBase,实现一个带有圆角样式边框的Panel

3、  CaptionPanel集成PanelBase,实现一个带有标题和圆角边框的Panel,并且定义相应的标题栏鼠标事件。

4、  PushPanel继承BorderPanel,是最终的抽屉控件,实现了可视化的添加和移除抽屉项(Item)、设置抽屉项的外观和展开、折叠抽屉项等功能。

5、  PushPanelItem继承CaptionPanel,从命名可以看出,它实现的是一个抽屉项,主要实现抽屉的一些展开、折叠功能,一般由PushPanel来管理。

 

为了PushPanel方便的管理抽屉项(PushPanelItem),像.NET自带的那些带有项的控件(如:ListBoxListViewTreeView等)一样,需要实现一个项的集合类,以利于方便的管理所有的项。所以实现了一个PushPanelItemCollection集合,这个集合主要就是实现添加、移除、查找项等功能。

 

对于实现抽屉项的展开和折叠,这个主要是计算各个项的位置和大小,实现并不是很难,这里也不再详述。

 

为了方便的实现可视化的设计,还为PushPanelPushPanelItem编写了简单的设计器,这个在这里不详细说明,大家可以下载源码了解。

 

    本文就为你介绍到这里,希望本文提供的抽屉控件对你有用。

 

声明:

本文版权归作者和CS 程序员之窗所有,欢迎转载,转载必须保留以下版权信息,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

作者:Starts_2000

出处:CS 程序员之窗 http://www.csharpwin.com

你可以免费使用或修改提供的源代码,但请保留源代码中的版权信息,详情请查看:

CS程序员之窗开源协议 http://www.csharpwin.com/csol.html