Vb.net 我尝试复制剪贴板时出现空图像

Vb.net 我尝试复制剪贴板时出现空图像,vb.net,Vb.net,我已经开始建立我的第一个软件,我试图复制到剪贴板上的电子图形绘制在一个面板 但是我试图复制的图像是空的 如何从paint事件将图形作为png图像复制到剪贴板 这是我的密码 Dim fileName = OpenFileDialog1.FileName Dim image1 = Image.FromFile(fileName, True) Dim texture As New TextureBrush(image1) texture.WrapMo

我已经开始建立我的第一个软件,我试图复制到剪贴板上的电子图形绘制在一个面板 但是我试图复制的图像是空的 如何从paint事件将图形作为png图像复制到剪贴板

这是我的密码

Dim fileName = OpenFileDialog1.FileName

        Dim image1 = Image.FromFile(fileName, True)

        Dim texture As New TextureBrush(image1)
        texture.WrapMode = Drawing2D.WrapMode.Tile

        Dim font As New Font("Arial", 8, FontStyle.Bold)

        e.Graphics.DrawString(textoutline, FontDialog1.Font, texture, TextBox2.Text, TextBox3.Text)
我试着用这段代码复制到剪贴板

Dim graphicsImage = New Bitmap(Panel1.Width, Panel1.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb)
    Clipboard.SetImage(graphicsImage)

但是我需要复制为png格式。我如何保存它呢?据我所知,存储在内存中的图像是位图。为什么需要将其作为PNG显示在剪贴板上?如果只是为了将其保存到文件中,则可以使用在此行中定义的已定义图像对象

Dim image1 = Image.FromFile(fileName, True)
无需将其存储为PNG,因为您可以将其保存为任何受支持的格式。。像这样

    Image1.Save("filename", System.Drawing.Imaging.ImageFormat.Png)

但是,如果您想将图像作为电子邮件附件发送,您可以执行类似于上的答案的操作。它是用c#表示的,但是你明白了。

现在,你正在向剪贴板发送一张空白图像(除非你正在做其他没有显示的事情,否则上面没有画任何东西)。另外,
Paint
事件在哪里由于您刚刚开始,请帮自己一个忙,在所有项目中设置
选项Explicit On
选项Strict On
。避免了很多麻烦(例如,您在
e.Graphics.DrawString()
中以字符串形式传递
float
坐标)。