Benutzer mit den meisten Antworten
Seitenränder einstellen

Frage
Antworten
-
Hallo giftzwockel,
Hier ein Beispiel für Seitenränder an der RichTextBox einstellen.Friend Class Form1 Inherits System.Windows.Forms.Form Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click 'Seitenränder +30 zum Beispiel Const EC_LEFTMARGIN As Integer = &H1 Const EC_RIGHTMARGIN As Integer = &H2 Const EM_GETMARGINS As Integer = &HD4 Const EM_SETMARGINS As Integer = &HD3 Dim dwMargins As Integer dwMargins = SendMessage(RichTextBox1.Handle.ToInt32, EM_GETMARGINS, 0, 0) dwMargins = MakeDWord(30, 30) ' (Rechts, Links) Call SendMessage(RichTextBox1.Handle.ToInt32, EM_SETMARGINS, EC_RIGHTMARGIN Or EC_LEFTMARGIN, dwMargins) RichTextBox1.Text = RichTextBox1.Text & " " End Sub Private Sub Command2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command2.Click 'Seitenränder aufheben Const EC_LEFTMARGIN As Integer = &H1 Const EC_RIGHTMARGIN As Integer = &H2 Const EM_SETMARGINS As Integer = &HD3 Call SendMessage(RichTextBox1.Handle.ToInt32, EM_SETMARGINS, EC_LEFTMARGIN Or EC_RIGHTMARGIN, 1) RichTextBox1.Text = RichTextBox1.Text & " " End Sub Function MakeDWord(ByRef wHi As Short, ByRef wLo As Short) As Integer If wHi And &H8000 Then MakeDWord = ((CShort(wHi And &H7FFF) * 65536) Or (wLo And &HFFFF)) Or &H80000000 Else MakeDWord = (wHi * 65536) + wLo End If End Function End Class
Grüße und Erfolg !
- Als Antwort markiert Forenteam Mittwoch, 17. Juni 2009 23:04
Alle Antworten
-
Hallo,
ja das ist eingentlich eine RichTextBox bei der Multiline auf True gestellt ist.
Einstellen möchte ich die irgendwann auch mal über den dafür vorgesehenen Dialog. Ich denke aber, dass das Handling dieses Dialogs genauso problematisch ist wie dem Print Dialog Leben einzuhauchen. Da muss ich mich mal intensiver mit befassen wenn ich mal mehr Zeit und Muße habe.
Jetzt geht es mir um darum, "irgendwo" im Quelltext für meine RichTextBox2 die vier Ränder einzustellen, dami bei der Texteingabe die Buchstaben nicht so am Rand hängen.
Vielen Dank im Voraus Liebe Grüße Stefan -
Hallo giftzwockel,
Hier ein Beispiel für Seitenränder an der RichTextBox einstellen.Friend Class Form1 Inherits System.Windows.Forms.Form Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click 'Seitenränder +30 zum Beispiel Const EC_LEFTMARGIN As Integer = &H1 Const EC_RIGHTMARGIN As Integer = &H2 Const EM_GETMARGINS As Integer = &HD4 Const EM_SETMARGINS As Integer = &HD3 Dim dwMargins As Integer dwMargins = SendMessage(RichTextBox1.Handle.ToInt32, EM_GETMARGINS, 0, 0) dwMargins = MakeDWord(30, 30) ' (Rechts, Links) Call SendMessage(RichTextBox1.Handle.ToInt32, EM_SETMARGINS, EC_RIGHTMARGIN Or EC_LEFTMARGIN, dwMargins) RichTextBox1.Text = RichTextBox1.Text & " " End Sub Private Sub Command2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command2.Click 'Seitenränder aufheben Const EC_LEFTMARGIN As Integer = &H1 Const EC_RIGHTMARGIN As Integer = &H2 Const EM_SETMARGINS As Integer = &HD3 Call SendMessage(RichTextBox1.Handle.ToInt32, EM_SETMARGINS, EC_LEFTMARGIN Or EC_RIGHTMARGIN, 1) RichTextBox1.Text = RichTextBox1.Text & " " End Sub Function MakeDWord(ByRef wHi As Short, ByRef wLo As Short) As Integer If wHi And &H8000 Then MakeDWord = ((CShort(wHi And &H7FFF) * 65536) Or (wLo And &HFFFF)) Or &H80000000 Else MakeDWord = (wHi * 65536) + wLo End If End Function End Class
Grüße und Erfolg !
- Als Antwort markiert Forenteam Mittwoch, 17. Juni 2009 23:04
-
Danke, ich werde das am Wochenende ausprobieren und vor allem versuchen zu verstehen.
Für mich ist das immer ein Problem erst mal rauszufinden wo solche Deklaratione wie
Friend Class Form1 und der ganze Teil danach hingehören.
Einfack kopieren und einfügen (ausprobieren) ist auch nicht das was ich möchte. Schließlich möchte ich irgendwann mal mit weniger Hilfestellung auskommen :-)
Vielen Dank im Voraus Liebe Grüße Stefan