|
|
Hans Happel
Ärgert es Sie auch, dass der Text in Textfeldern oben und an den Seiten klebt.
Wäre ein Rand nicht schöner?
Schaffen Sie Abhilfe mit folgendem Tipp.
-
Erstellen Sie eine Form mit einem Textfeld, das
mehrere Zeilen beinhalten kann.
-
Geben Sie den Button Command1 hinzu.
-
Schalten Sie im Text1 evtl. die Eigenschaft Scrollbars = 2
Der Deklarationsabschnitt sollte folgenden Inhalt haben:
Option Explicit
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
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 |
Command1_Click sieht so aus:
Private Sub Command1_Click()
Dim Rahmen As RECT
SendMessage Text1.hwnd, &HB2, 0, Rahmen 'alte Rahmenmaße werden gelesen.
EM_GETRECT = &HB2
Rahmen.Top = 8
Rahmen.Left = 8
Rahmen.Right = Rahmen.Right - 8
Rahmen.Bottom = Rahmen.Bottom - 8
SendMessage Text1.hwnd, &HB3, 0, Rahmen 'neue Rahmenmaße werden
geschrieben. EM_SETRECT = &HB3
End SubP |
Ins Form_Load-Ereignis schreiben Sie den folgenden oder einen
beliebigen Text
Private Sub Form_Load()
Text1 = "Der Text in einer Textbox muß nicht am Rand kleben. " &
_
"Drücken Sie den Button Command1. Die Schrift wird sich vom Rand
lösen." & vbCrLf & vbCrLf & _
"Mehrmalieges Drücken vergrößert den rechten und unteren Rand, "
& _
"weil die benutzerdefinierten Variablen Rahmen.Right und Rahmen.Bottom
subtrahiert
werden." & vbCrLf & vbCrLf & _
"Wollen Sie das gleiche mit Rahmen.Top und Rahmen.Left machen, dann müssen
Sie
addieren."
End Sub |
Da dies ein Demo-Programm ist stehen im Command1_Click-Ereignis
die
Werte für die Randbreite. Wir wollen ja den Unterschied erkennen. Eigentlich
gehört der Inhalt von Command1_Click in das Form_Load-Ereignis.
|
|