?? 如何打印多行的文本框.txt
字號:
Printer.Print不 會 自 動 換 行 , 而 且 當 每 次 從 新 行 打 印 時 , 都 是 從 最 左 端 開 始 , 而 我 們 通 常 希 望 左 側 保 留 一 些 空 白 地 方 。 下 面 的 程 序 可 以 簡 單 地 介 紹 一 下 原 理 :
Private Sub Command1_Click()
Dim s As String, sLine As String
Printer.CurrentY = 150
s = Text1.Text
pos = InStr(s, vbCrLf)
Do While pos > 0
sLine = Left(s, pos - 1)
s = Mid(s, pos + 2)
PrintSingleLine Trim(sLine), 100, 50
pos = InStr(s, vbCrLf)
Loop
PrintSingleLine Trim(s), 100, 50
End Sub
分 行 有 兩 種 , 一 種 是 使 用 回 車 換 行 , 另 一 種 是 一 行 太 長 了 。 上 面 這 段 程 序 就 是 按 照 回 車 換 行 把 文 字 分 成 多 個 段 。 然 后 對 每 個 段 都 調 用 PrintSingleLine進 行 打 印 。 PrintSingleLine的 第 一 個 參 數 為 文 字 , 第 二 個 參 數 為 每 行 的 左 側 的 坐 標 , 第 三 個 參 數 表 示 一 行 可 以 打 印 多 少 字 符 。 該 函 數 如 下 :
Sub PrintSingleLine(s As String, X As Long, n As Integer)
Dim nLines As Integer
nLines = Len(s) / n
If Len(s) > n * nLines Then nLines = nLines + 1
If Len(s) = 0 Then nLines = 1 ' 空 行
For i = 0 To nLines - 1
Printer.CurrentX = X
Printer.Print Mid(s, i * n + 1, n)
Next
End Sub
在 這 里 , 我 們 計 算 一 段 文 字 可 以 打 印 多 少 行 , 然 后 用 程 序 分 行 打 印 。
<END>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -