-1

自分のICan3D.Graphicsクラスから生成された画像から直接描画するために作成したコントロールのOnPaintメソッドをオーバーライドしています。画像を保存すると(ご覧のとおり、その行はコメント化されています)、画像は正しいです。ただし、フォームが読み込まれると、画像は背景として表示されません。

Imports System

Namespace ICan3D

    Public Class RenderSurface
        Inherits Control

        Dim nImg As Graphics

        Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
            Dim img As Bitmap = nImg.Visual
            'img.Save("C:\image.png")
            Dim nGraphDis As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(img)
            Dim nPaintEventArgs As New PaintEventArgs(nGraphDis, New Rectangle(0, 0, Width, Height))
            MyBase.OnPaint(nPaintEventArgs)
        End Sub

        Private Sub RenderSurface_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
            nImg = New Graphics(Width, Height)
        End Sub

    End Class

End Namespace

私はVB.netを使用しているので、すべての.netの回答が受け入れられます:)

4

1 に答える 1

3
Protected Overrides Sub OnPaint(e As PaintEventArgs)
    MyBase.OnPaint(e)
    e.Graphics.DrawImageUnscaled(nImg.Visual, 0, 0, Width, Height)
End Sub
于 2012-05-31T09:21:51.317 に答える