吧Component修改为继承System.Windows.Forms.ButtonpublicpartialclassEllipseButton : System.Windows.Forms.Button
{privateColor startColor=Color.Blue;//private Color costartColor=Color.White;privateColor endColor=Color.GreenYellow;
[Description("设定渐变的起始色"),Category("Appearance")]//注视publicColor StartColor
{get{returnstartColor;
}set{
startColor=value;
RePaint();
}
}
[Description("设定渐变的终止色"), Category("Appearance")]publicColor EndColor
{get{returnendColor;
}set{
endColor=value;
RePaint();
}
}publicEllipseButton()
{
InitializeComponent();this.Width=100;this.Height=100;
}//绘制圆形区域protectedoverridevoidOnPaint(PaintEventArgs pe)
{base.OnPaint(pe);
Graphics g=pe.Graphics;
g.Clear(this.BackColor);
Rectangle rect=newRectangle(0,0,this.Width,this.Height);
LinearGradientBrush myBrush=newLinearGradientBrush(rect,startColor,endColor,LinearGradientMode.ForwardDiagonal);
g.FillEllipse(myBrush, rect);
myBrush.Dispose();
StringFormat format=newStringFormat();
format.LineAlignment=StringAlignment.Center;
format.Alignment=StringAlignment.Center;
g.DrawString(this.Text, Font,newSolidBrush(this.ForeColor), rect, format);
}//重新绘制圆形区域privatevoidRePaint()
{
Rectangle rect=newRectangle(0,0,this.Width,this.Height);
OnPaint(newPaintEventArgs(this.CreateGraphics(), rect));
}privatevoidEllipseButton_Resize(objectsender, System.EventArgs e)
{
RePaint();
}privatevoidEllipseButton_TextChanged(objectsender, System.EventArgs e)
{
RePaint();
}
}
作者:FreeComputer