随着VB.NET的发展,用它的人也越来越多,它的功能也随之强大,这里介绍一下VB.NET Print方法的使用。VB.NET Print方法,可以在容器上输出内容,请看以下一段代码(command1为按钮控件)
- Private Sub Form_Load()
- print "VB Print Test"
- END Sub
- Private Sub Command1_Click()
- Print "Command1 Print"
- End Sub
然后运行程序,您将会发现窗体上并没有显示出VB Print Test,而当单击Command1按钮时,将会在窗体上打印出"Command1 Print",而并不是在窗体左上角。为什么窗体启动后没有在窗体上打印出"VB Print Test"而单击按钮时就会打印出内容呢?而且打印在第二行,而不是在最左上角呢?这就与窗体的创建加载过程有关了。窗体事件事件的执行有先后顺序,为
- Form_Initialize,Form_Load,Form_Active,Form_GotFocus,
- Form_Paint.....
下面简单地验证一下这些顺序。
- Dim sTemp As String
- Private Sub Command1_Click()
- MsgBox sTemp
- End Sub
- Private Sub Form_Activate()
- sTempsTemp = sTemp & vbCrLf & "Active 事件发生"
- End Sub
- Private Sub Form_GotFocus()
- sTempsTemp = sTemp & vbCrLf & "GotFocus 事件发生"
- End Sub
- Private Sub Form_Initialize()
- sTempsTemp = sTemp & vbCrLf & "Initialize 事件发生"
- End Sub
- Private Sub Form_Load()
- sTempsTemp = sTemp & vbCrLf & "Load 事件发生"
- End Sub
- Private Sub Form_Paint()
- sTempsTemp = sTemp & vbCrLf & "Paint 事件发生"
- End Sub
- Private Sub Form_Resize()
- sTempsTemp = sTemp & vbCrLf & "Resize 事件发生"
- End Sub
#T#点击Command1后将出现提示框,显示各个事件先后发生的次序。这样就不难明白为什么程序运行后不能打印VBPrint Test了,因为把print方法放在Load过程中,而Paint事件在Load事件后发生,窗体重控,所以不能看见VB Print Test了。只要是在Paint事件前用VB.NET Print方法,都不能显示。不过,只要将Form的AutoRedraw设置为True,那么将会发现也能正确打印出VB Print Test;AutoRedraw属性与Paint事件密切相关。