制作类似VS工具条的工具树容器

 十一前就开始准备做了,不过一到放假就发现自己懒了,哈哈,现在就把效果图片发上来给大家看看,并谈谈关键部分的代码.

一.设计时效果

二.运行时效果

1)有3个选项页时的运行效果.

2).选项页比较多的时候,在底端对齐后的效果.

3).变换了渐变色后的效果.

三.谈谈设计的实现原理:

制作这个控件需要由2个主要的部分组成.一是容器,二是容器里面显示的选项页.选项页是一个继承自panel的控件(JcsPage),提供了2种布局方式,也就是我们在设计时期图片中看到2种布局(一种是加号展开,减号折叠,另一种是双箭头向下展开,双箭头向上折叠),主要是在onpaint方法里对不同的布局做相应的处理,同时需要重写按钮相应事件,对鼠标位置是否在指定区域(双箭头或加减号所在的矩形区域)的判断,如果在这个区域将引发一事件.容器控件是一个继承自ContainerControl的控件,主要提供对容器内元素的管理以及布局的处理,关键的代码是如何对高度变化的元素做相应位置上的有效调整.另外,因为设置了autoscroll为真,所以,在出现纵向滚动条的时候,要将所有元素的宽度适当地缩小到(容器工作区 - 滚动条宽度)的值.如果哪位朋友有兴趣或需要源代码,可以联系我(heqiumie@tom.com ),不过因为开发的程序大多数都会适当的(其实很少)收取一些费用,所以也请大家谅解!

部分源代码:

 

using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Drawing;
using  System.Data;
using  System.Text;
using  System.Windows.Forms;
using  System.Windows.Forms.VisualStyles;
using  System.Drawing.Drawing2D;
namespace  JcsControlLibrary
{
    
public class BaseContainerPanel : ContainerControl
    
{
      
Fields

Events

Init

        
Methods
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值