У меня есть кодГрафика Исчезают панели на прокрутке
Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
Using myPen As New Pen(Drawing.Color.BurlyWood, 6)
If upTimer.Enabled = True Then
e.Graphics.DrawLine(myPen, x1, y1, x1, y2)
End If
If leftTimer.Enabled = True Then
e.Graphics.DrawLine(myPen, x1, y1, x2, y1)
End If
If rightTimer.Enabled = True Then
e.Graphics.DrawLine(myPen, x1, y1, x2, y1)
End If
If downTimer.Enabled = True Then
e.Graphics.DrawLine(myPen, x1, y1, x1, y2)
End If
End Using
End Sub
Где x1, y1, x2 и y2 являются initalized к нулю в Form_Load.
Таймеры код являются:
Private Sub upTimer_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
y2 = y2 + 5
End Sub
Private Sub leftTimer_Tick(sender As Object, e As EventArgs) Handles leftTimer.Tick
x2 = x2 - 5
End Sub
Private Sub rightTimer_Tick(sender As Object, e As EventArgs) Handles rightTimer.Tick
x2 = x2 + 5
End Sub
Private Sub downTimer_Tick(sender As Object, e As EventArgs) Handles downTimer.Tick
y2 = y2 - 5
End Sub
Я четыре кнопки, чтобы включить эти четыре timers.Now проблема заключается в том, что, когда я автоматически прокручивать PictureBox, содержащийся в панели или вручную рисунки получить disappeared.How может Я избегаю этого?
Я попробовал PictureBox1.Refresh() в событии прокрутки панели, но опять то же самое происходит. Строки исчезают. Я хочу добавить, что таймер (по одному постоянно работает). –
В любом случае добавьте обновление также на таймеры, но я думаю (IMHO), что вы ошибаетесь в логике. Попробуйте эти изменения: в событии рисования добавьте только одну строку, добавьте только один таймер и добавьте 4 булевскую глобальную переменную. Установите логическую переменную с истинным или ложным на ваших кнопках (например: btn1 set blnDirectionUP = true), в таймере вы проверяете свои логические значения и chenge x2/y2 и заканчиваете в конце таймера таймера и события прокрутки, добавляете обновление картинки. Если я понимаю, что вы делаете, вот и все. :) – Baro