PrintTextBox




Private Sub PrintTextBox(ByRef cControl As TextBox)
'DESCRIZIONE --------------

'Stampa la pagina corrente.

'

'DICHIARAZIONE DELLE COSTANTI E DELLE VARIABILI LOCALI

Dim CurrentLeft As Single
Dim iCurrPos As Integer
Dim iLenght As Integer
With cControl 'Inizio WITH cControl.
Let CurrentLeft = .Left 'assegno la posizione sinistra di riferimento.
Printer.CurrentY = .Top 'assegno la posizione superiore.
Printer.CurrentX = CurrentLeft 'assegno la posizione sinistra.
Printer.FontName = .FontName 'assegno il font.
Printer.FontBold = .FontBold 'font grassetto.
Printer.FontItalic = .FontItalic 'font corsivo.
Printer.FontUnderline = .FontUnderline 'font sottolineato.
Printer.FontSize = .FontSize 'dimensione del font.
Let iLenght = 0 'azzero il contatore di lunghezza.
Do While iLenght < Len(.Text) 'Inizio DO WHILE...LOOP iLenght.
Let iLenght = iLenght + 1 'incremento il contatore di posizione.
If InStr(iLenght, .Text, vbNewLine) <> 0 Then 'Inizio IF...THEN InStr().
Let iCurrPos = InStr(iLenght, .Text, vbNewLine, vbTextCompare) 'assegno la posizione del NewLine.
Printer.CurrentX = CurrentLeft 'mi posiziono sulla colonna.
Printer.Print Mid(.Text, iLenght + IIf(iLenght = 1, 0, 1), IIf(iLenght = 1, iCurrPos - iLenght, iCurrPos - iLenght - 1))
Let iLenght = iCurrPos 'assegno la posizione successiva al NewLine.
Else 'Else IF...THEN InStr().
Let iCurrPos = Len(.Text) 'assegno la posizione definitiva della stringa.
Printer.CurrentX = CurrentLeft 'mi posiziono sulla colonna.
Printer.Print Mid(.Text, IIf(iLenght = 1, iLenght, iLenght + 1), iCurrPos)
Exit Do 'esco dal ciclo di LOOP.
End If 'Fine IF...THEN InStr.
Loop 'Fine DO WHILE...LOOP C.
End With 'Fine WITH cControl.
Printer.EndDoc 'chiudo la pagina stampata.
End Sub

Private Sub Command1_Click()
PrintTextBox Text1
End Sub











( printtextbox.html )- by Paolo Puglisi - Modifica del 17/12/2023