网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

进度条控件

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 14/02/25

鉴于大家对ASP.net十分关注,我们编辑小组在此为大家搜集整理了“进度条控件”一文,供大家参考学习

因为比较简单,也没有多少技术含量,就把它帖出来,希望给别的朋友一点帮助 这个进度条控件,除了具有普通进度条的功能以外,还具有如下功能:设置进度条的背景色和前景色设置进度条的外观方式(3D,single,none)是否自动显示当前进度比例(比如在进度条的中间显示当前进度58%)当然,这个功能还可以增加很多,比如背景色和前景色也可以用图片代替,还有其它的功能打算在以后有时间时再添加,这次就写这些了。代码如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Drawing;

using System.Drawing.Drawing2D ;

using System.Data;

using System.Windows.Forms;

namespace XiaoPang.Windows

{

     /// <summary>

     /// GProgressBar 的摘要说明。

     /// </summary>

     public class GProgressBar : System.Windows.Forms.UserControl

     {

         /// <summary>

         /// 必需的设计器变量。

         /// </summary>

         private System.ComponentModel.Container components = null;

 

         public GProgressBar()

         {

              // 该调用是 Windows.Forms 窗体设计器所必需的。

              InitializeComponent();

              base.Height = 23 ;

              this.Resize+=new EventHandler(GProgressBar_Resize);

              this.LocationChanged+=new EventHandler(GProgressBar_Resize);

         }

 

         private void GProgressBar_Resize(object sender,System.EventArgs e)

         {

              base.Refresh() ;

         }

 

         private  int mMax =100;

         [Browsable(true), Description("最大值"), Category("XiaoPang")]

         public int Max

         {

              get

              {

                   return mMax ;

              }

 

              set

              {

                   mMax = value > 0?value:1;

              }

         }

        

         [Browsable(true), Description("大小"), Category("XiaoPang")]

          public new Size Size

         {

 

              get

              {

                   return base.Size ;

              }

 

              set

              {

                   base.Size = value ;

              }

         }

         private  int mMin =0;

         [Browsable(true), Description("最小值"), Category("XiaoPang")]

         public int Min

         {

              get

              {

                   return mMin ;

              }

 

              set

              {

                   mMin = value ;

              }

         }

 

         private int mStep = 1 ;

         [Browsable(true), Description("步长"), Category("XiaoPang")]

         public int Step

         {

              get

              {

                   return mStep ;

              }

 

              set

              {

                   mStep = value ;

              }

        

         }

             

         [Browsable(true), Description("背景色"), Category("XiaoPang")]

         public override Color BackColor

         {

 

              get

              {

                   return base.BackColor ;

              }

 

              set

              {

                   base.BackColor = value ;

              }

         }

         [Browsable(true), Description("前景色"), Category("XiaoPang")]

         public override Color ForeColor

         {

 

              get

              {

                   return base.ForeColor ;

              }

 

              set

              {

                   base.ForeColor = value ;

              }

         }

         private bool mRate = false;

         [Browsable(true), Description("是否显示比例数字"), Category("XiaoPang")]

         public bool Rate

         {

              get

              {

                   return mRate ;

              }

 

              set

              {

                   mRate = value ;

              }

         }

         private int mValue = 0 ;

         [Browsable(true), Description("当前值"), Category("XiaoPang")]

         public int Value

         {

              get

              {

                   return mValue ;

              }

              set

              {

                   if (value <= this.Max)

                    mValue = value ;

                   else

                       mValue = this.Max ;

                   this.Refresh() ;

              }

         }

 

 

         private BorderStyle mBorderStyle = BorderStyle.Fixed3D ;

         [DefaultValue(0), Category("XiaoPang"),Description("外观")]

         public BorderStyle BorderStyle

         {

              get

              {

                   return this.mBorderStyle;

              }

              set

              {

                   if (this.mBorderStyle != value)

                   {

                       this.mBorderStyle = value;

                       this.Refresh() ;

                   }

              }

         }

 

         public void PerformStep()

         {

              Value++ ;

         }

 

         private void DrawProgress(Graphics g,Rectangle rect)

         {

              int iWidth = (Value*rect.Width)/Max ;

              Rectangle DrawRect = new Rectangle(rect.X,rect.Y,iWidth,rect.Height) ;

              SolidBrush front = new SolidBrush(this.ForeColor) ;

              g.FillRectangle(front,DrawRect);    

              if (Rate)

              {

                   int iRate = Value*100/Max ;

                   string strText = iRate.ToString() + "%" ;

                   int iTextWidth = (int)g.MeasureString(strText,this.Font).Width ;

                   int iStart = rect.Left + (rect.Width - iTextWidth)/2 ;          

                   Point posS = new Point(iStart -10,rect.Top) ;

                   Point posE = new Point(iStart + iTextWidth + 10,rect.Bottom) ;

                   LinearGradientBrush textbrush = new LinearGradientBrush(posS,posE,this.BackColor,this.ForeColor) ;

                   g.DrawString(strText,this.Font,textbrush,iStart ,rect.Top+5) ;

              }            

         }

 

         protected override void OnPaintBackground(PaintEventArgs pevent)

         {

              SolidBrush back = new SolidBrush(this.BackColor) ;

              pevent.Graphics.FillRectangle(back,pevent.ClipRectangle);   

         }

 

         protected override void OnPaint(PaintEventArgs e)

         {

              if (!this.DesignMode)

                DrawProgress(e.Graphics,e.ClipRectangle) ;

             

              switch(BorderStyle)

              {

                   case BorderStyle.None:

                       break ;

                   case BorderStyle.FixedSingle:

                       System.Windows.Forms.ControlPaint.DrawBorder3D(e.Graphics,e.ClipRectangle,Border3DStyle.Flat) ;

                       break ;

                   case BorderStyle.Fixed3D:

                       System.Windows.Forms.ControlPaint.DrawBorder3D(e.Graphics,e.ClipRectangle,Border3DStyle.Sunken) ;

                       break ;

              }

         }

 

         /// <summary>

         /// 清理所有正在使用的资源。

         /// </summary>

         protected override void Dispose( bool disposing )

         {

              if( disposing )

              {

                   if(components != null)

                   {

                       components.Dispose();

                   }

              }

              base.Dispose( disposing );

         }

 

         #region 组件设计器生成的代码

         /// <summary>

         /// 设计器支持所需的方法 - 不要使用代码编辑器

         /// 修改此方法的内容。

         /// </summary>

         private void InitializeComponent()

         {

              //

              // GProgressBar

              //

              this.Name = "GProgressBar";

              this.Size = new System.Drawing.Size(150, 24);

 

         }

         #endregion

     }

}

  • 上一篇资讯: 日期选择控件
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号