【发布时间】:2015-02-04 22:01:55
【问题描述】:
我的表单中只有一个图片框,我想在这个图片框上使用一种方法绘制圆,但我不能这样做并且不起作用。方法是:
private Bitmap Circle()
{
Bitmap bmp;
Graphics gfx;
SolidBrush firca_dis=new SolidBrush(Color.FromArgb(192,0,192));
bmp = new Bitmap(40, 40);
gfx = Graphics.FromImage(bmp);
gfx.FillRectangle(firca_dis, 0, 0, 40, 40);
return bmp;
}
图片框
private void pictureBox2_Paint(object sender, PaintEventArgs e)
{
Graphics gfx= Graphics.FromImage(Circle());
gfx=e.Graphics;
}
【问题讨论】:
-
你应该让你的函数以
Graphics作为参数。 -
你的问题没有多大意义。在
Paint方法的处理程序中,您应该仅 绘制到e.Graphics实例。但是你想在这里做什么?每次引发PictureBox的Paint事件时要画一个圆圈吗?是否要将PictureBox.Image属性设置为已绘制圆圈的Bitmap?还有什么?见stackoverflow.com/help/how-to-ask 和stackoverflow.com/help/mcve -
@PeterDuniho 我想把圆画成位图
-
好吧,您的
Circle()方法几乎可以做到这一点。将FillRectangle()更改为FillCircle(),你会得到一个圆圈。然后只需将该方法的返回值分配给pictureBox2.Image属性(例如,在您的Form构造函数中)。您可以完全摆脱Paint事件处理程序。如果你想要一个真正的答案,你需要发布一个更好的代码示例。见stackoverflow.com/help/mcve
标签: c# paint picturebox