VB中打印多行文本框的内容时,如何控制每行在纸上的位置?送20分

我用Prnt(x,y)的方法打印多行的文本框,可是只有第一行是按(x,y)的位置打印出来的,后面的行都是从最左边打印的。如何让后面的行按第一行的X值打印出来?我是新手,忘... 我用Prnt(x,y)的方法打印多行的文本框,可是只有第一行是按(x,y)的位置打印出来的,后面的行都是从最左边打印的。如何让后面的行按第一行的X值打印出来?我是新手,忘高手能写详细些
可能我没说明白,我把代码发上来。
Option Explicit
Dim x As Integer
Dim y As Integer
Dim fnt As Byte
Dim txt As String
Dim dd As Variant

Public Function prnt(x As Variant, y As Variant, fnt As Variant, txt As Variant)
Printer.CurrentX = x
Printer.CurrentY = y
Printer.FontSize = fnt
Printer.Print txt
End Function

Private Sub Command1_Click()
Printer.ScaleMode = 6
fnt = 14
x = 56
y = 59
txt = Text1
dd = prnt(x, y, fnt, txt)
Printer.EndDoc
End Sub

Text1 就是多行文字的文本,不是打印到文本框,是从文本框打印到A4纸上,打印时,只有第一行是按(x,y)的坐标打的,从第二行向后都是打印到纸的最左面,如何让后面的行,也按(X,Y)坐标打?qqchildren 朋友说的对,就是要空出打印到纸上的左边距,可是tab(i):我不知道怎么加才对。谢谢两位的回答,麻烦高手们再帮忙给看看。
展开
 我来答
djc4333
2009-07-18 · TA获得超过372个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:86.6万
展开全部
你要打印到文本框中?不知道你说的 prnt(x,y)是不是你定义的一个函数,vb里应该没有这个方法的,如果你要按自己的格式打印到文本框 text1中,可按下面代码打印的方法做你的东西。
Private Sub Command1_Click()
Text1.Text = "我" & Space(5) & "和你" & vbCrLf ‘第一行,在“我”后面空5个字符,然后打印"和你",然后结束第一行。
Text1.Text = Text1.Text + Space(3) + "2323" '第二行,空3个字符打印2323"
End Sub

哦,这次说清楚了,你只打印了text1的内容,而打印的位置就设置了一次,当然第二行还是按照text1中的格式还在最备辩中左边了,呵呵,你按下面的代码打印就行了。
Private Sub Command1_Click() 'command1中代码,你的其他代码不变
Printer.ScaleMode = 6
Dim shuzu As Variant
shuzu = Split(Text1.Text, vbCrLf) '把多行文本按回车换行分成n个数组
Dim i As Integer
For i = 0 To UBound(shuzu)
fnt = 14
x = 56: y = 59
'y为行与行之间的间灶州隔,单位你要注意点,查查仿山相关资料,我不多说了
dd = prnt(x, y * (i + 1), fnt, shuzu(i)) '把多行文本按行打印
Next i
Printer.EndDoc
End Sub
经调试通过。
电影讲谈社
2009-07-18 · TA获得超过1.2万个赞
知道大有可为答主
回答量:3994
采纳率:40%
帮助的人:2078万
展开全部
tab(i),
i就是枯李你没茄迟要控制的左边距
在你要打的内容之前加上,冒号不能少纳配
print tab(i);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式