我有一个自定义的C#用户控件,我想在一个文本框后面的后面,这个文本框锚定在控件的居中底部。我画的是这样的圆圈:
protected override void OnResize(EventArgs e)
{
this.gp= new GraphicsPath();
this.gp.AddEllipse(0,0,width,height); //this is the width and height of the control
this.Region=new Region(this.gp);
this.Refresh();
base.OnResize (e);
}
protected override void OnPaint(PaintEventArgs pe)
{
Color centerColor = Color.FromArgb(255,255,255,255);
Color surroundColor = Color.FromArgb(255,255,255,255);
PathGradientBrush br=new PathGradientBrush(this.gp);
br.CenterColor=centerColor;
br.SurroundColors=new Color[]{surroundColor};
pe.Graphics.FillPath(br,this.gp);
}
我已将文本框添加到GUI设计器中的控件。
当我跑步时,我最终会得到这样的结果:
alt text http://i47.tinypic.com/2pyrxbk.jpg
如何将椭圆保留在文本框后面?
谢谢, 标记
答案 0 :(得分:3)
如果您想在后台执行此操作,请在“OnPaintBackground”覆盖中而不是在OnPaint中执行此操作。然后,当您想要绘制它时,椭圆所在的区域无效。