如何使用无效方法强制重绘图形

本文关键字:绘图 图形 何使用 无效 方法 | 更新日期: 2023-09-27 18:36:07

当表单进入屏幕时,我正在努力使用无效方法重绘图形 图形未重绘 我尝试从图形创建一个图像,以便使用无效方法重新绘制它,但它不起作用有人可以帮助编辑代码并用简单的术语来完成,因为我仍然是初学者,非常感谢

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
        }

如何使用无效方法强制重绘图形

使用 DrawToBitmap 方法。

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

当您不需要持久绘图时,可以使用 CreateGraphics 对象。如果这是在按钮单击事件中,它将在表面上绘制,但一旦系统想要重绘,它就不会保留。

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));
}