【问题标题】:Can't save panel with controls to bitmap无法将带有控件的面板保存到位图
【发布时间】:2015-04-29 09:09:29
【问题描述】:

我整个早上都在谷歌上搜索,试图弄清楚这一点。

我有一个带有多个标签、一个图片框和背景图像的面板。我想将整个面板保存到位图进行打印,但是,它只绘制面板和背景图像。我的标签或图片框都没有被绘制。

这是我的代码

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Dim bmp As New Bitmap(jobcard.Panel1.Width, jobcard.Panel1.Height)
    jobcard.Panel1.DrawToBitmap(bmp, New Rectangle(0, 0, bmp.Width, bmp.Height))
    If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
        bmp.Save(SaveFileDialog1.FileName)
    End If
End Sub

有人知道是什么原因造成的吗? P.S,我正在使用 Visual Studio express 2012

编辑:我得到这个工作部分归功于下面 Mou 的帮助。 在尝试将面板保存到位图之前,我忘记了显示表单。表格是隐藏的,所以我没有真正注意到

【问题讨论】:

    标签: .net vb.net


    【解决方案1】:

    试试这个

    Bitmap bmp = new Bitmap(panel1.Width,panel1.Height);
    panel1.DrawToBitmap(bmp, panel1.Bounds);
    bmp.Save(@"C:\Temp\Test.bmp");
    

    从这个网址获得提示How can I save a Panel in my form as a picture?

    我对其进行了测试,它运行良好。这是我以编程方式生成的面板图像。

    【讨论】:

    • 感谢您的评论。我只是尝试了相同的结果,但是,我在您给我的链接上看到 DrawToBitmap 在 .net 框架 4 之后有点不受支持,而我正在使用 .net 框架 4.5。我将尝试更改我的框架版本并将结果发布
    • 我的面板在另一个表单上会不会有问题?
    • 感谢您的帮助。原来我忘了在保存之前显示包含面板的表单。表格是隐藏的,所以我没有真正注意到 facepalm
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 2018-01-31
    • 2012-03-27
    • 2012-09-02
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2013-03-16
    相关资源
    最近更新 更多