一个自定义LABEL组件的C#源代码
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.ComponentModel;
namespace wzsbmain
{
/// <summary>
/// Summary description for LabelGradient.
/// </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);
}
}
}
- 上一篇: LCS问题算法之VB.net版
- 下一篇: 在C#中使用XML指南之读取XML