나는 흥미로운 VB.NET을 사용하여 그래프를 작성하는 작업이 있습니다. 지금까지, GDI +와 예를 들어 제가 읽은 모든 것은 정말 이상합니다. 내가하고 싶은 모든2D 드로잉 : 버튼 - 다시 그리기 미스터리
1) 버튼을 1
2) 새로운 좌표를 얻기 위해 버튼을 1
3) 버튼을 클릭 한에서 숫자 라인을 그릴 버튼 2를 클릭을 클릭 약간의 좌표를 계산이다
4) 단추 2를 클릭하여 이전 줄과 새 줄을 그립니다.
5) 그래프를 지우려면 버튼 3을 클릭하십시오.
그래서 저는 panel1이라는 패널 위에 모든 것을 그릴 것을 결정했습니다. 단지 GraphicsHandler 일이 작동하여, 지금까지
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
'AddHandler Panel1.Paint, AddressOf DrawLine
GraphicsHandler = Panel1.CreateGraphics
End Sub
Private Sub drawlines(ByVal g As Graphics, ByVal c As Color)
Dim p As New Pen(c, 1)
g.DrawLine(p, xStart, yStart, xEnd, yEnd)
p.Dispose()
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
'GraphicsHandler = Panel1.CreateGraphics
GraphicsHandler.DrawLine(myPen, 10, 10, 200, 100)
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
xStart = CInt(Math.Ceiling(Rnd() * 200))
yStart = CInt(Math.Ceiling(Rnd() * 100))
xEnd = CInt(Math.Ceiling(Rnd() * 200))
yEnd = CInt(Math.Ceiling(Rnd() * 100))
Me.Panel1.Invalidate()
End Sub
Private Sub Panel1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles Panel1.Paint
drawlines(e.Graphics, Color.Blue)
End Sub
Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button3.Click
GraphicsHandler.Clear(Color.White)
End Sub
하지만, 매번 나는 창을 최소화하기 위해 시도하거나 : 나는 화면이라고 drawlines에 그리는 루틴,
Private Sub drawlines(ByVal g As Graphics, ByVal c As Color)
Dim p As New Pen(c, 1)
g.DrawLine(p, xStart, yStart, xEnd, yEnd)
p.Dispose()
End Sub
다른 루틴이 새 줄을 그리면 이전 줄이 지워집니다. 어떤 종류의 영혼이 나에게 위의 단순한 1-5을하는 적절한 방법을 설명 할 수 있습니까? 예를 들어 버튼에서 drawlines()을 호출하려면 어떻게해야합니까?
나는 그것의 좀 두려워했다. 이 변경으로 인해 전체 프로그램 로직을 다시 배선해야합니다. 복잡한 기능과 짜잔과 같은 복잡한 그림을 추가하십시오, 여기 있습니다. 어쨌든 고마워. – Ivan
@Ivan - 여기에 추가 정보가있는 링크가 있습니다 : http://bobpowell.net/picturebox.htm –
글쎄, 다른 방법이 없다면, 나는 모든 기본적인 객체 지향 프로그래밍을 버리고 VB.NET 방식. 귀하의 답변에 감사드립니다. – Ivan