vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Linespacing in der RichTextBox 
Autor: Strato
Datum: 27.05.08 18:01

Servus,

kann mir einer bei folgendem Code helfen:

  <StructLayout(LayoutKind.Sequential)> _
  Public Structure STRUCT_PARAFORMAT2
    Public cbSize As Int32
    Public dwMask As Int32
    Public wNumbering As Int16
    Public wReserved As Int16
    Public dxStartIndent As IntPtr
    Public dxRightIndent As IntPtr
    Public dxOffset As IntPtr
    Public wAlignment As Int16
    Public cTabCount As Short
    <MarshalAs(UnmanagedType.ByValArray, SizeConst:=32)> _
    Public rgxTabs() As IntPtr
    Public dySpaceBefore As IntPtr
    Public dySpaceAfter As IntPtr
    Public dyLineSpacing As IntPtr
    Public sStyle As Short
    Public bLineSpacingRule As Byte
    Public bOutlineLevel As Byte
    Public wShadingWeight As Int16
    Public wShadingStyle As Int16
    Public wNumberingStart As Int16
    Public wNumberingStyle As Int16
    Public wNumberingTab As Int16
    Public wBorderSpace As Int16
    Public wBorderWidth As Int16
    Public wBorders As Int16
  End Structure
 
  <StructLayout(LayoutKind.Sequential)> _
  Private Structure STRUCT_CHARRANGE
    Public cpMin As Int32
    Public cpMax As Int32
  End Structure
 
  <DllImport("user32.dll")> _
  Private Shared Function SendMessage( _
    ByVal hWnd As IntPtr, _
    ByVal msg As Int32, _
    ByVal wParam As Int32, _
    ByVal lParam As IntPtr) As Int32
  End Function
 
  Private Const WM_USER as Int32 = &H400&
  Private Const EM_SETPARAFORMAT = (WM_USER + 71)
 
  Private Const PFM_LINESPACING = &H100&
 
  Public Sub SetLineSpacing(Handle as IntPtr, Linespacing as Int32, Rule as _
    Byte)
    Dim pf = New STRUCT_PARAFORMAT2
 
    pf.dwMask = Convert.ToUInt32(PFM_LINESPACING)
    pf.bLineSpacingRule = Rule
    pf.dyLineSpacing = Linespacing 
 
    Dim lParam = Marshal.AllocCoTaskMem(Marshal.SizeOf(pf))
    Marshal.StructureToPtr(pf, lParam, False)
    SendMessage(Handle, EM_SETPARAFORMAT, Nothing, lParam)
  End Sub
Der Aufruf soll dann etwa so aussehen:

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
    System.EventArgs) Handles Button1.Click
    SetLineSpacing(RichTextBox1.Handle,3*20,5) 'Zeilenabstand auf 3-fach setzen
  End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Linespacing in der RichTextBox1.816Strato27.05.08 18:01
Re: Linespacing in der RichTextBox1.014Melkor27.05.08 21:36
Re: Linespacing in der RichTextBox1.070Strato28.05.08 10:25
Re: Linespacing in der RichTextBox1.031Melkor28.05.08 10:36
Re: Linespacing in der RichTextBox1.058Strato28.05.08 10:55
Re: Linespacing in der RichTextBox1.212Melkor28.05.08 11:15
Re: Linespacing in der RichTextBox1.040Strato28.05.08 15:03

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel