VB中的打印问题·····

来源:百度知道 编辑:UC知道 时间:2024/07/08 15:00:51
我想产生两个4×4的矩阵,并把它们同时(一个在左边,一个在右边)打印在窗体上,可是按照下面这个代码打印出来的不是我想要的结果,有谁能告诉我为什么它每打印一列就自动换行么?
Option Explicit
Option Base 1

Private Sub Form_Load()
Dim a(4, 4) As Integer, b(4, 4) As Integer
Dim i As Integer, j As Integer, k As Integer, h As Integer
For i = 1 To 4
For j = 1 To 4
Randomize
a(i, j) = Int(Rnd * 41 + 30)
Randomize
b(i, j) = Int(Rnd * 35 + 101)
Next j
Next i

For i = 1 To 4
For j = 1 To 4
Print Tab(20 + 5 * j); a(i, j); Tab(50 + 5 * j); b(i, j);
Next j
Print
Next i
End Sub

你这两个For循环运行下来,上边的那个Print运行了16次。

你想产生两个4X4的矩阵,只占4行,只需要运行4次就够了。

For i = 1 To 4
Print Tab(20 + 5 * j); a(i, 1); a(i, 2); a(i, 3); a(i, 4); Tab(50 + 5 * j); b(i, 1); b(i, 2); b(i, 3); b(i, 4)
Next i

这个语句有些长,如果矩阵元素多了,这样也不现实。
你可以

For i = 1 To 4
For j = 1 To 4
'此处拼接字符串
Next j
Print 上面拼接好的字符串
Next i

打印机本身问题。
参考 http://zhidao.baidu.com/question/43772828.html?si=9

msdn中的是标准答案,让我写也没法写的更好了。

PrintForm方法

本示例使用PrintForm方法打印当前窗体。

Private Sub Form_Click()
Dim Msg
On Error GoTo ErrorHandler
Print Form '打印窗体
Exit Sub
ErrorHandler:
Msg = "The form can't be printed."
MsgBox Msg
Resume Next
End Sub
参考