Textbox

Tags:    visual-basic

Jeg bruger følgende kode til at udskrive en textbox med. Hvordan får jeg den 80 ind på siden og 70 ned?
Jeg har haft en del problemer med, at den kun vil rykke den øverste linje ind:((




Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Private Const EM_GETLINE = &HC4
Private Const EM_GETLINECOUNT = &HBA
Private Const EM_LINELENGTH = &HC1

Private Sub Command1_Click()

PrintMultiLineTextBox txttitle

End Sub

Private Sub PrintMultiLineTextBox(ByRef txtBox As TextBox)

Dim intLastLine As Integer
Dim intLength As Integer
Dim strTemp As String
Dim intIndex As Integer
Dim strPrint As String

intLastLine = SendMessage(txtBox.hwnd, EM_GETLINECOUNT, 0, 0) - 1

If intLastLine > 0 Then
For intIndex = 0 To intLastLine Step 1
intLength = SendMessage(txtBox.hwnd, EM_LINELENGTH, intIndex + 1, 0)
strTemp = Space$(intLength)
SendMessage txtBox.hwnd, EM_GETLINE, intIndex, ByVal strTemp
strPrint = strPrint & strTemp & vbCrLf
Next intIndex
strPrint = Left$(strPrint, Len(strPrint) - 2)
Else
strPrint = txtBox.Text
End If

Printer.Print strPrint
Printer.EndDoc
End Sub



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Jeg bruger følgende kode til at udskrive en textbox med. Hvordan får jeg den 80 ind på siden og 70 ned?
Jeg har haft en del problemer med, at den kun vil rykke den øverste linje ind:((




Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Private Const EM_GETLINE = &HC4
Private Const EM_GETLINECOUNT = &HBA
Private Const EM_LINELENGTH = &HC1

Private Sub Command1_Click()

PrintMultiLineTextBox txttitle

End Sub

Private Sub PrintMultiLineTextBox(ByRef txtBox As TextBox)

Dim intLastLine As Integer
Dim intLength As Integer
Dim strTemp As String
Dim intIndex As Integer
Dim strPrint As String

intLastLine = SendMessage(txtBox.hwnd, EM_GETLINECOUNT, 0, 0) - 1

If intLastLine > 0 Then
For intIndex = 0 To intLastLine Step 1
intLength = SendMessage(txtBox.hwnd, EM_LINELENGTH, intIndex + 1, 0)
strTemp = Space$(intLength)
SendMessage txtBox.hwnd, EM_GETLINE, intIndex, ByVal strTemp
strPrint = strPrint & strTemp & vbCrLf
Next intIndex
strPrint = Left$(strPrint, Len(strPrint) - 2)
Else
strPrint = txtBox.Text
End If

Printer.Print strPrint
Printer.EndDoc
End Sub


Hej

ud fra dit spørgsmål kan jeg ikke udlede om det er textboxen's
placering på formen eller hvad ? "det med at printe er uvedkommende"
eller om det er vidden og bredden i textboxen' ud fra data'ene som textboxen indeholder

men et skud fra hoften

txtBox.left = 80
txtBox.top = 70

eller

txtBox.width = 80
txtBox.height = 70

ellers må du tælle længden på hver enkelt streng som læses ind i textboxen' og derefter angive vidden ud fra den største
len(min streng) og det samme med line count


mvh jens





Jeg har brugt disse her for at placere min tekst på papiret.

Printer.CurrentX =
Printer.CurrentY =

Fold kodeboks ind/udKode 




t