を再描画私はVB.NETを使用していくつかのグラフを行う興味深いタスクを持っています。これまでのところ、私がGDI +や芸術家について何かを読んできたことは、本当に奇妙なことです。私がやりたいすべては2D図面:ボタン - 謎
1)ボタン1
2をクリックして、いくつかの座標を計算)ボタン1
3から番号の線を引くために、ボタン2をクリックして)新しい座標を取得するには、ボタン1をクリックしてください
4)クリックボタン2は、前の行と新しい行を描画します。
5)ボタン3をクリックしてグラフを消去します。
だから私は、パネル1と呼ばれるパネルの上にeverthingを描くことにしました。私は、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
およびその他のルーチン:これまでのところ
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
、唯一GraphicsHandlerのものが動作している使用して、しかし、毎回私は、ウィンドウを最小化しようとしますか、新しい行を描画すると、前の行が消去されます。上記のシンプルな1-5を行う適切な方法を私に説明することができますか?たとえば、ボタンからdrawlines()を呼び出すにはどうすればよいですか?
私はそれのちょっと怖かったです。この変更のために、プログラムロジック全体を再配線する必要があります。複雑な機能やボイラーのような複雑な図を追加してください。とにかくありがとう。 – Ivan
@Ivan - ここでは、追加情報へのリンクです:周りに他に方法はありません場合http://bobpowell.net/picturebox.htm –
まあ、私はすべての基本的なオブジェクト指向プログラミングを捨てるとでそれを行う必要があるでしょうが、 VB.NETの方法。ご回答有難うございます。 – Ivan