Member 13795806 Ответов: 2

Как я могу добавить элемент управления PictureBox при использовании creategraphics


Изображение PictureBox отсутствует, когда я пытаюсь сохранить объект.


Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove
        Static last As New Point
        If e.Button = Windows.Forms.MouseButtons.Left Then
            PictureBox1.CreateGraphics.DrawLine(color, last.X, last.Y, e.X, e.Y)
        End If
        last = e.Location
    End Sub


    Private Sub CmdSave_Click(sender As Object, e As EventArgs) Handles cmdSave.Click
        If PictureBox1.Image IsNot Nothing Then
            bmp = PictureBox1.Image
            bmp.Save("c:\cabaret\test1.png", System.Drawing.Imaging.ImageFormat.Png)
        End If
    End Sub


Что я уже пробовал:

Пробовал сохранять в png, bmp и т. д., Но в PictureBox1.image нечего сохранять.

2 Ответов

Рейтинг:
2

Richard Deeming

Там нет изображения, потому что вы его не загрузили. Вам нужно будет воспользоваться Метод DrawToBitmap[^] вместо этого, как описано в этот ответ StackOverflow[^].

Private Sub CmdSave_Click(sender As Object, e As EventArgs) Handles cmdSave.Click
    Dim bmp As New Bitmap(PictureBox1.ClientSize.Width, PictureBox1.ClientSize.Height)
    PictureBox1.DrawToBitmap(bmp, PictureBox1.ClientRectangle)
    bmp.Save("c:\cabaret\test1.png", System.Drawing.Imaging.ImageFormat.Png)
End Sub


Рейтинг:
2

Dave Kreskowiak

PictureBox.CreateGraphics не дает вам изображение, которое в данный момент хранится в PictureBox. Это дает вам контекст для рисования на экране, где отображается элемент управления PictureBox. Любой рисунок, который вы делаете с этим графическим объектом, не влияет на изображение, хранящееся и используемое PictureBox.