2012-05-31 5 views
-1

내 컨트롤의 OnPaint 메서드를 재정의하여 내 ICan3D.Graphics 클래스에서 생성 된 이미지에서 직접 그릴 수 있습니다. 이미지를 저장하면 (볼 수 있듯이 해당 행은 주석으로 처리됩니다) 이미지가 정확합니다. 그러나 양식이로드되면 이미지가 배경으로 표시되지 않습니다. 내가 VB.net을 사용하고페인트가이 이미지를 그리는 이유는 무엇입니까?

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 

그래서 모든 .NET 응답이 허용됩니다 :)

+0

당신은있는 PaintEventArgs 매개 변수의 그래픽 객체를 사용하여 자신을 제공하지해야합니다. 토마스의 대답을보십시오. – MicSim

답변

3
Protected Overrides Sub OnPaint(e As PaintEventArgs) 
    MyBase.OnPaint(e) 
    e.Graphics.DrawImageUnscaled(nImg.Visual, 0, 0, Width, Height) 
End Sub 
+0

고마워, 그것은 작동 :) – FreeSnow

관련 문제