How to force graphic to be redrawn with the invalidate method

霸气de小男生 提交于 2019-12-11 22:22:36

问题


I am struggling with getting the graphic to be redrawn with the invalidate method when the form goes the screen the graphic isn't redrawn i have tried to create an image from the graphics for it to been redrawn with the invalidate method but it doesn't work could somebody help edit the code for and do it in simple terms as i am still a beginner thanks would be much appreciated

private void squareButton_Click(object sender, EventArgs e)
        {

            // Declaring a new graphics object has been assigned null
            Graphics objGraphics = null;
            // This will create the picture graphics to be drawn in the picturebox
            objGraphics = PictureBox1.CreateGraphics();
            // This will redraw the picture box with a fill chosen after the systemcolors
            objGraphics.Clear(SystemColors.ControlDark);
            // This will draw the rectangle with a red pen 10,10 represent position and 50,50 reprsent the width and height 
            objGraphics.DrawRectangle(Pens.Red, 10, 10, 50, 50);
            // This will draw the rectangle
            objGraphics.Dispose();
Bitmap imgbit = (Bitmap)Picturebox.Image;
Graphics.FromImage(imgbit);
picturebox.invalidate();


// This is not redrawing the graphic it just shows a blank form

        }

回答1:


Using the DrawToBitmap method.

Bitmap bmp = new Bitmap(pb.Width, pb.Height);
pb.DrawToBitmap(bmp, pb.ClientRectangle);
bmp.Save({your path});
bmp.Dispose();

You can use the CreateGraphics object when your not wanting a persistent drawing. If this was in a button click event it will draw on the surface, but it will not stay once the system wants to redraw.

using (Graphics g = pb.CreateGraphics)
{
g.FillRectangle(Brushes.Blue, new Rectangle(20, 20, 20, 20));
g.DrawRectangle(Pens.Red, new Rectangle(20, 20, 20, 20));
}


来源:https://stackoverflow.com/questions/19469210/how-to-force-graphic-to-be-redrawn-with-the-invalidate-method

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!