2014-03-07 2 views
2

VB.Net에서 저는 폼과 패널을 가지고 있습니다. 그래서 기본적으로 프로젝트를 실행할 때 아래로 스크롤 할 수 있습니다. 즉, 내 양식이 평소보다 많은 패널을 사용한다는 의미입니다. 직사각형과 선을 완벽한 위치에 그릴 수 있지만 런타임 중에 내 양식을 아래로 스크롤하면 직사각형이 파괴됩니다. 직사각형과 선이 혼란스럽게 나타나는 것처럼 보입니다. 런타임 중에 스크롤 한 후 사각형과 선을 유지하는 위치를 혼동하는 것 같습니다. 내가 사용한 점수의 가치 때문입니까? 포인트의 절대 위치에 관한 것입니까? 이 문제를 어떻게 해결할 수 있습니까?VB.NET에서 패널 내에서 드로잉 사각형을 삭제했습니다.

Private Sub Form2_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint 
    ' Create pen. 
    Dim blackPen As New Pen(Color.Black, 1) 
    e.Graphics.DrawRectangle(blackPen, 14, 220, 726, 30) 
    e.Graphics.DrawRectangle(blackPen, 14, 250, 726, 45) 
    e.Graphics.DrawLine(blackPen, 143, 250, 143, 295) 
    e.Graphics.DrawLine(blackPen, 279, 250, 279, 295) 
    e.Graphics.DrawLine(blackPen, 377, 250, 377, 295) 
    e.Graphics.DrawLine(blackPen, 502, 250, 502, 295) 
    e.Graphics.DrawLine(blackPen, 14, 295, 14, 325) 
    e.Graphics.DrawLine(blackPen, 740, 295, 740, 325) 
    e.Graphics.DrawRectangle(blackPen, 14, 325, 726, 40) 
    e.Graphics.DrawRectangle(blackPen, 14, 365, 726, 37) 
    e.Graphics.DrawRectangle(blackPen, 14, 402, 726, 32) 
    e.Graphics.DrawRectangle(blackPen, 14, 434, 726, 32) 
    e.Graphics.DrawRectangle(blackPen, 14, 466, 726, 32) 
    e.Graphics.DrawRectangle(blackPen, 14, 498, 726, 32) 
    e.Graphics.DrawRectangle(blackPen, 14, 530, 726, 32) 
    e.Graphics.DrawRectangle(blackPen, 14, 562, 726, 32) 
    e.Graphics.DrawRectangle(blackPen, 14, 594, 726, 50) 
End Sub 
+0

그 이유는 직사각형의 위치가 변경되었으므로이 직사각형을 다시 칠해야합니다. – Codexer

답변

0

그래픽을 비트 맵에 색칠하면 엉망이되지 않습니다.

Private Sub Form2_Shown(sender As Object, e As EventArgs) Handles Me.Shown 
PaintTheForm() 
End Sub 
Private Sub PaintTheForm() 
Dim bmp As New Bitmap(Me.Width, Me.Height) 
Using g As Graphics = Graphics.FromImage(bmp) 
    Dim blackPen As New Pen(Color.Black, 1) 
    g.DrawRectangle(blackPen, 14, 220, 726, 30) 
    g.DrawRectangle(blackPen, 14, 250, 726, 45) 
    g.DrawLine(blackPen, 143, 250, 143, 295) 
    g.DrawLine(blackPen, 279, 250, 279, 295) 
    g.DrawLine(blackPen, 377, 250, 377, 295) 
    g.DrawLine(blackPen, 502, 250, 502, 295) 
    g.DrawLine(blackPen, 14, 295, 14, 325) 
    g.DrawLine(blackPen, 740, 295, 740, 325) 
    g.DrawRectangle(blackPen, 14, 325, 726, 40) 
    g.DrawRectangle(blackPen, 14, 365, 726, 37) 
    g.DrawRectangle(blackPen, 14, 402, 726, 32) 
    g.DrawRectangle(blackPen, 14, 434, 726, 32) 
    g.DrawRectangle(blackPen, 14, 466, 726, 32) 
    g.DrawRectangle(blackPen, 14, 498, 726, 32) 
    g.DrawRectangle(blackPen, 14, 530, 726, 32) 
    g.DrawRectangle(blackPen, 14, 562, 726, 32) 
    g.DrawRectangle(blackPen, 14, 594, 726, 50) 
    Me.BackgroundImage = bmp 
End Using 
End Sub 
관련 문제