vb picture.print如何打印多行文字

来源:百度知道 编辑:UC知道 时间:2024/06/09 03:06:28
Textbox里有多行文字,是多行,不是很多,把这些文字传到picture.print里的某个固定位置,不是顶格。
如textbox里的文字:
1。你好吗?
2。我很好。
3。谢谢你。
把这三行传到Picture.print里离左边800点的位置。
我原来的代码:
text1.text="1。你好吗?"&chr(0)&chr(3)&"2。我很好。"&chr(0)&chr(3)&"3。谢谢你。"
Picture1.CurrentX = 7995
Picture1.CurrentY = 10680
Picture1.Print text1.text
但是显示的效果:
1。你好吗?
2。我很好。
3。谢谢你。
而我想要的效果:
1。你好吗?
2。我很好。
3。谢谢你。
请问高手们,我需要怎么写呢?
因为显示不出我想要的效果,我再补充点。
我写的代码里显示的效果是:
_______1。你好吗?
2。我很好。
3。谢谢你。
我想要的效果:
_______1。你好吗?
-------2。我很好。
-------3。谢谢你。
(______下划线代码空白。)

换行是 chr(13) & chr(10) 或是 VbCrlf ,如果你想要的Text顶格写而打印不顶格,可以先用一个字符串读出来一行一行的打印,每次打印是用Space()或 Tab()控制空格数。我写一段在Form上打印的代码。
Private Sub Command1_Click()
Dim St As String, i As Integer, ch As String, Str As String
Text1.Text = "1.你好吗?" & Chr(13) & Chr(10) & "2.我很好。" & Chr(13) & Chr(10) & "3.谢谢你。"
St = Text1.Text & Chr(13) 'chr(13)是为了让最后一行打印出来
For i = 1 To Len(St)
ch = Mid(St, i, 1)
If Asc(ch) = 13 Or Asc(ch) = 10 Then
Print Tab(8); Str; '第二个“;”不能少
Str = ""
Else
Str = Str & ch
End If
Next i
End Sub

这个代码最简单

Private Sub Command1_Click()

Text1.Text = "1.你好吗?" & vbCrLf & "2.我很好。" & vbCrLf & "3.谢谢你。"
Dim s() As String
s = Split(Text1.Text, vbCrLf)

Dim i As Integer
For i = 0 To UBound(s)
Picture1.Print " " & s(i) & vbCrLf
Next i