你得在 picturebox 中画。
是在picturebox中画。我看你之前好像回答过类似问题
@+小马哥++:
Graphics gc = pictureBox1.CreateGraphics();
看你这段代码,你好像是在 pictureBox1 的父窗体中写的绘制代码。
@Launcher: 不是在父窗体绘制的。是在picturebox中
@+小马哥++: 难道你的 PictureBox 派生类中还有个 PicutureBox 类型的成员变量 pictureBox1?
怕是不能直接画在picturebox,你要new一个BitMap,然后画在BitMap中,把picturebox的Image之设为BitMap,这样才合理,能起到双缓冲的作用。
private void DrawEllipseOnPictureBox()
{
Bitmap bmp = new Bitmap(this.pictureBox2.Width, this.pictureBox2.Height);
Graphics g = Graphics.FromImage(bmp);
g.DrawEllipse(new Pen(Color.Red), new Rectangle(50, 50, 100, 100));
g.Dispose();
this.pictureBox2.Image = bmp;
}
你拉动 或者启动操作的时候 就会触发重绘 。肯定会消失!你把代码写在 重绘 函数里 。肯定一直在!