绘图图形在VB.net中消失

Wil*_*ire 3 vb.net graphics paint visual-studio-2010 draw

我有一个简单的程序,您可以使用FillEllipse和FillRectangle在屏幕上绘制.我的问题是,当您将另一个窗口拖过屏幕的一小部分时,该部分将被删除.当您将另一个窗口拖过,放开并将其拖回时,会发生这种情况.有没有什么办法解决这一问题?

Dim MyFormObject As Graphics = Me.CreateGraphics
        Select Case shape
            Case "Ellipse"
                MyFormObject.FillEllipse(brush, e.X - CInt(brushWidth / 2), e.Y - CInt(brushHeight / 2), brushWidth, brushHeight)
            Case "Rectangle"
                MyFormObject.FillRectangle(brush, e.X - CInt(brushWidth / 2), e.Y - CInt(brushHeight / 2), brushWidth, brushHeight)
        End Select
Run Code Online (Sandbox Code Playgroud)

gor*_*rdy 5

您可以在窗体上放置一个PictureBox控件,然后绘制到该窗体,当其他窗口绘制时,它不会被删除:

在form_load或其他东西上执行一次:

pictureBox1.Image = new Bitmap(Width, Height);
Run Code Online (Sandbox Code Playgroud)

绘制:

Graphics.FromImage(pictureBox1.Image).FillRectangle(Brushes.Black, 0, 0, 100, 100);
pictureBox1.Refresh();
Run Code Online (Sandbox Code Playgroud)