一个自定义LABEL组件的C#源代码

using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.ComponentModel;

namespace wzsbmain
{
///

1<summary>   
2/// Summary description for LabelGradient.   
3/// </summary>

public class wzsbmainLabel : System.Windows.Forms.Label
{

#region Implementtation Member Fields
protected Color gradientColorOne = Color.White;
protected Color gradientColorTwo = Color.Blue;
protected LinearGradientMode lgm = LinearGradientMode.ForwardDiagonal;
protected Border3DStyle b3dstyle = Border3DStyle.Bump;
#endregion

#region GradientColorOne Properties
[
DefaultValue(typeof(Color),"White"),
Description("The first gradient color."),
Category("Appearance"),
]

//GradientColorOne Properties
public Color GradientColorOne
{
get
{
return gradientColorOne;
}
set
{
gradientColorOne = value;
Invalidate();
}
}
#endregion

#region GradientColorTwo Properties
[
DefaultValue(typeof(Color),"Blue"),
Description("The second gradient color."),
Category("Appearance"),
]

//GradientColorTwo Properties
public Color GradientColorTwo
{
get
{
return gradientColorTwo;
}
set
{
gradientColorTwo = value;
Invalidate();
}
}

#endregion

#region LinearGradientMode Properties
//LinearGradientMode Properties
[
DefaultValue(typeof(LinearGradientMode),"ForwardDiagonal"),
Description("Gradient Mode"),
Category("Appearance"),
]

public LinearGradientMode GradientMode
{
get
{
return lgm;
}

set
{
lgm = value;
Invalidate();
}
}
#endregion

#region Border3DStyle Properties
//Border3DStyle Properties
[
DefaultValue(typeof(Border3DStyle),"Bump"),
Description("BorderStyle"),
Category("Appearance"),
]

// hide BorderStyle inherited from the base class
new public Border3DStyle BorderStyle
{
get
{
return b3dstyle;
}
set
{
b3dstyle = value;
Invalidate();
}
}
#endregion

#region Removed Properties

// Remove BackColor Property
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never)
]
public override System.Drawing.Color BackColor
{
get
{
return new System.Drawing.Color();
}
set {;}
}

#endregion

// protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
// {
// Graphics gfx = e.Graphics;
// //Border3DStyle b3dstyle = Border3DStyle.Bump;
// //Border3DSide b3dside = Border3DSide.All;
//
// Rectangle rect = new Rectangle (0,0,this.Width,this.Height);
//
// // Dispose of brush resources after use
// using (LinearGradientBrush lgb = new LinearGradientBrush(rect, gradientColorOne,gradientColorTwo,lgm))
// gfx.FillRectangle(lgb,rect);
//
// //3d border
// //ControlPaint.DrawBorder3D(gfx,rect,b3dstyle,b3dside);
//
//
// // Call the OnPaint method of the base class
// base.OnPaint(e);
//
// }

protected override void OnPaintBackground(System.Windows.Forms.PaintEventArgs pevent)
{
Graphics gfx = pevent.Graphics;

Rectangle rect = new Rectangle (0,0,this.Width,this.Height);

// Dispose of brush resources after use
using (LinearGradientBrush lgb = new LinearGradientBrush(rect, gradientColorOne,gradientColorTwo,lgm))
gfx.FillRectangle(lgb,rect);

ControlPaint.DrawBorder3D(gfx,rect,b3dstyle);
}

}
}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus