如何重画窗体最小化前的东西?

feixian49 2003-09-11 11:46:39
我编了一个在picturebox上画线的程序,将数据点(坐标、颜色)保存在一个数组中,当窗体最小化后,如何重画先前picturebox的东西
...全文
52 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
feixian49 2003-09-11
  • 打赏
  • 举报
回复
哦,可以了
feixian49 2003-09-11
  • 打赏
  • 举报
回复
好象都不行,我的程序是这样的:

Private counter As Integer
Private Const MaxSize = 10000
Private Color(0 To MaxSize) As Long '保存颜色

Private arrx(1 To MaxSize) As Integer '保存坐标
Private arry(1 To MaxSize) As Integer




Private Sub Command1_Click(Index As Integer)
If Index = 0 Then
CommonDialog1.ShowColor
Picture1.ForeColor = CommonDialog1.Color
Color(counter) = Picture1.ForeColor


Else
End
End If
End Sub

Private Sub Form_Load()
counter = 0

Command1(0).Caption = "颜色选择"
Command1(1).Caption = "退出"


End Sub

Private Sub Form_Paint()
While i > 1 And i <= MaxSize
Picture1.ForeColor = Color(i - 1)
Picture1.Line (arrx(i - 1), arry(i - 1))-(arrx(i), arry(i))
i = i + 1
Wend
End Sub

Private Sub Form_Resize()
Refresh
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'If counter < MaxSize Then
' counter = counter + 1
' arrx(counter) = X: arry(counter) = Y
' Color(counter) = (counter - 1)



' End If
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If counter < MaxSize Then
counter = counter + 1
arrx(counter) = X: arry(counter) = Y
Color(counter) = Color(counter - 1)

If counter > 1 And Button = vbLeftButton Then
Picture1.Line (arrx(counter - 1), arry(counter - 1))-(arrx(counter), arry(counter))
End If


End If
End Sub

felix 2003-09-11
  • 打赏
  • 举报
回复
如果要自己重画可以写在Form_Paint里面
felix 2003-09-11
  • 打赏
  • 举报
回复
如果要自己重画就写在Form_Paint里面
maskzha 2003-09-11
  • 打赏
  • 举报
回复
可以自己重画的。
picturebox.AutoRedraw = True
TechnoFantasy 2003-09-11
  • 打赏
  • 举报
回复
你可以将picturebox的autoredraw属性设置为True,让它自己重画。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧