下面是我编写的一段程序
运行的时候发现,当控件line1在picturebox1里面移动时,所经过的地方就会把用Picture1.Line (120, 120)-(3000, 2000)画出来的线擦掉,怎么回事呢??
我想要的效果是:line1移动时,不要把直线擦掉,怎么实现呢
恳请大家帮忙啦
快急死我了Private Sub Command1_Click()
Picture1.Line (120, 120)-(3000, 2000)
End SubPrivate Sub Form_Load()
Timer1.Interval = 100
End SubPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Interval = 0
Line2.X1 = X
Line2.X2 = X
End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Line1.X1 = X
Line1.X2 = X
End SubPrivate Sub Timer1_Timer()
Line1.X1 = Line1.X1 + 100
Line1.X2 = Line1.X2 + 100
end sub

解决方案 »

  1.   

    Private Sub Form_Load()
    Timer1.Interval = 100
    End Sub
    ’改一下Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Timer1.Interval = 0
    Line2.X1 = X
    Line2.X2 = X
    End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Line1.X1 = X
    Line1.X2 = X
    Picture1.Line (120, 120)-(3000, 2000)
    End SubPrivate Sub Timer1_Timer()
    Line1.X1 = Line1.X1 + 100
    Line1.X2 = Line1.X2 + 100
    End Sub
      

  2.   

    picture1的autoredraw改成true试试。
      

  3.   

    用Picture1.Line画的线只画了一次,窗口更新时就会消失,可以在Paint事件里再画一次.Private Sub Picture1_Paint()
        Picture1.Line (120, 120)-(3000, 2000) 
    End Sub
      

  4.   

    关键是在设计时把picture1的AutoRedraw属性设置成True.