为什么 Private Sub Form_Load()下print不出来
为什么PrivateSubForm_Load()下print不出来要把autoredraw设为true为什么用debugprint就就行了?O(∩_∩)O谢谢...
为什么 Private Sub Form_Load()下print不出来要把autoredraw设为true
为什么用debug print就就行了?
O(∩_∩)O谢谢 展开
为什么用debug print就就行了?
O(∩_∩)O谢谢 展开
3个回答
展开全部
答案其实并不复杂,只是牵扯到内部机制的问题。
用Line、包括Print等语句绘制到界面上的内容,并不是真正的文字,而是文字的图像,可以理解为像素,存在了内存某一个区域的。
而绘制到屏幕上时,每次只是更新了新添加到这个区域的内容。
当有窗体遮挡住已绘制的内容时,如果不设置AutoRedraw为True,被遮挡的部分再次显现出时,并不会从内存取出这部分内容重绘。(即使再次使用Print语句,也是绘制新的语句所更新的内容)
最后,在Form_Load时,窗体本身是尚未显示的,也就是说是全部被遮挡的,而显示后,不会自动重绘已有的图像。
你可以尝试这样,就清楚了:
Private Sub Form_Load()
Show
Print "abc"
End Sub
最后,Debug.Print,是将文字传到了VB里的“即时”那个窗口的文本框里,和绘制机制没有关系,因此,是一直可以的。
来自:求助得到的回答
展开全部
要放在load 里面应该这样
show
printautoredraw是把图像保存到内存中所以要占用内存资源,没有必要的话还是像上面那样就可以了。这样的话当你最小化或者窗体被挡住时候图像就不见了。大概就这个区别吧。
show
printautoredraw是把图像保存到内存中所以要占用内存资源,没有必要的话还是像上面那样就可以了。这样的话当你最小化或者窗体被挡住时候图像就不见了。大概就这个区别吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
窗体加载事件顺序
Private Sub Form_Initialize()
MsgBox 1
End Sub
Private Sub Form_Resize()
MsgBox 1
End Sub
Private Sub Form_Load()
MsgBox 3
Me.Show
Print "HEHE"
End Sub
Private Sub Form_Initialize()
MsgBox 1
End Sub
Private Sub Form_Resize()
MsgBox 1
End Sub
Private Sub Form_Load()
MsgBox 3
Me.Show
Print "HEHE"
End Sub
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询