1
我想顯示一個正在畫框中繪製的動畫弧。我無法在每個循環(每100度)繪製弧線。油漆僅在子程序結束時觸發,最終電弧爲300度。如何在每個循環中強制刷新圖片框?這是我的代碼和表單。vb.net DrawArc不會在Picturebox中刷新
Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim pen As New Pen(Color.Red, 1)
Dim r As Integer = 100
'Delay(2)
Do Until r > 300
e.Graphics.DrawArc(pen, 50, 50, 50, 50, 270, r) ' pen style, x position, y postion, width, height, start point degrees, arc degrees
ListBox1.Items.Add(r)
ListBox1.SelectedIndex = ListBox1.Items.Count - 1
r = r + 100
Delay(1)
Loop
e.Dispose()
pen.Dispose()
ListBox1.Items.Add("Done")
End Sub
我使用picturebox1.refresh(),更新(),無效()沒有成功的循環內進行審判。
你可以嘗試把'Application.DoEvents();'只是你'Loop' – Darren
的DoEvents年底前沒有工作 – HurstOlds
的問題是,你正在使用e.Graphics。直到引發'Paint'事件的代碼返回後,纔會執行這些操作。不確定,但如果您從表單中獲取'Graphics',它可能會像您期望的那樣工作。 – Steve