C# 如何在面板中保存和加载?

C# 如何在面板中保存和加载?,c#,bitmap,panel,bitmapimage,C#,Bitmap,Panel,Bitmapimage,我想将图像从面板保存到位图,然后在我的表单退出最小化模式后加载保存的图像 Bitmap bmp = new Bitmap(panel1.Width, panel1.Height); panel1.DrawToBitmap(bmp, panel1.Bounds); bmp.Save(@"C:\Test"); panel1.BackgroundImage = Image.FromFile(@"C:\Test"); 我应该使用什么事件来最小化事件? 另外,我是C#初学者。编辑 绘制面板的内容。这应该

我想将图像从面板保存到位图,然后在我的表单退出最小化模式后加载保存的图像

Bitmap bmp = new Bitmap(panel1.Width, panel1.Height);
panel1.DrawToBitmap(bmp, panel1.Bounds);
bmp.Save(@"C:\Test");
panel1.BackgroundImage = Image.FromFile(@"C:\Test");
我应该使用什么事件来最小化事件?
另外,我是C#初学者。

编辑

绘制面板的内容。这应该在其绘制事件处理程序中完成,如下所示:

将面板内容保存为图像。此部分应在其他地方完成(例如,当您单击“保存”按钮时):


谢谢,但我只得到一个白色背景图像,我没有得到我用e.drawline()在上面绘制的图形。这是我想要做的我不想用onpaint方法重新绘制我的点我只想用鼠标绘制的图形保存面板,然后我可以用加载按钮加载保存的图像,我面临的问题是保存问题。我不想使用onpaintmethod@HussainHalai看看我更新的答案,如果它有助于你接受它!感谢您的方法的帮助,但是我可以使用方法()绘制图像/图形吗?使用空白面板1_paintReading在线条之间,当您最小化并恢复表单时,您的图像似乎“丢失”了?我猜您可能已经使用CreateGraphics()进行了绘图。在面板的Paint()事件中使用“e.Graphics”,并存储有关在类级别绘制的内容的数据,以便在恢复窗体时自动重新绘制。如果您向我们展示您最初是如何创建图形的,那么我们可以帮助您修复它。
private void panel1_Paint(object sender, PaintEventArgs e)
{
    using (Pen p = new Pen(Color.Red, 3))
    {
        // get the panel's Graphics instance
        Graphics gr = e.Graphics;

        // draw to panel
        gr.DrawLine(p, new Point(30, 30), new Point(80, 120));
        gr.DrawEllipse(p, 30, 30, 80, 120);
    }
}
private void saveButton_Click(object sender, EventArgs e)
{
     int width = panel1.Size.Width;
     int height = panel1.Size.Height;

     using (Bitmap bmp = new Bitmap(width, height))
     {
         panel1.DrawToBitmap(bmp, new Rectangle(0, 0, width, height));
         bmp.Save(@"C:\testBitmap.jpeg", ImageFormat.Jpeg);
     }
}