vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2015
 
zurück
Rubrik: Controls · TextBox & RichTextBox   |   VB-Versionen: VB608.12.04
Auto-Indent für die (RTF)TextBox

Dieser Tipp zeigt, wie sich eine AutoIndent-Funktion für die Standard-TextBox bzw. für das RichTextBox-Control realisieren lässt - so wie man es von der VB-IDE her kennt und gewohnt ist.

Autor:   Jürgen SorkoBewertung:     [ Jetzt bewerten ]Views:  11.625 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise über 100,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 455,- EUR statt 569,- EUR
  • sevDTA 2.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 18,70 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 58,70 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    In unserem heutigen Tipp möchten wir Ihnen eine "AutoIndent"-Funktion für die Standard-TextBox bzw. für das RichTextBox-Control vorstellen - so wie man es bspw. von der VB-IDE her kennt und gewohnt ist.

    Die autoIndent-Funktion fügt hierbei an der aktuellen Position exakt so viele Leerzeichen in den Text ein, wie die vorherige Zeile führende Leerzeichen hat. Dies kann man verwenden um z.B. beim Drücken der ENTER-Taste den Text automatisch einzurücken.

    Die benötigenten Funktionen:

    ' Rückt den Text ein
    Public Sub autoIndent(oTextBox As Object)
      Dim nSpaces As Long
     
      With oTextBox
        ' Anzahl Leerzeichen der vorigen Zeile
        nSpaces = getLastSpaces(.Text, .SelStart)
     
        ' Zeilenumbruch und Anzahl ermittelter Leerzeichen einfügen
        .SelText = vbNewLine & Space$(nSpaces)
      End With
    End Sub
    ' Gibt die Anzahl der führenden Leerzeichen der
    ' vorigen Zeile im RichTextBox-Control aus
    Private Function getLastSpaces(ByVal sText As String, _
      nCurPos As Long) As Long
     
      ' Fehlerbehanldung aktivieren (sicher ist sicher)
      On Error Resume Next
     
      Dim nPos As Long
      Dim nSpaces As Long
     
      nPos = InStrRev(Left$(sText, nCurPos), vbNewLine)
      If nPos > 0 Then
        nPos = nPos + 2
        While Mid$(sText, nPos, 1) = " "
          nSpaces = nSpaces + 1
          nPos = nPos + 1
        Wend
      End If
     
      getLastSpaces = nSpaces
    End Function

    Die Funktion "autoIndent" erwartet als Parameter ein TextBox-Control. Hierbei kann es sich sowohl um eine Standard TextBox, als auch um ein RichTextBox-Control handelt.

    Ein kleines Beispiel:
    Platzieren Sie auf die Form ein RichTextBox-Control und fügen obigen Code in den Codeteil der Form ein.
    Beim Drücken der ENTER-Taste soll die nächste Zeile autom. um die gleiche Anzahl Leerzeichen, wie die aktuelle Zeile, eingerückt werden.

    Private Sub RichTextBox1_KeyPress(KeyAscii As Integer)
      If KeyAscii = vbKeyReturn Then
        ' Beim Drücken von Return, neuen Absatz autom. einrücken
        KeyAscii = 0
        autoIndent RichTextBox1
      End If
    End Sub

    Dieser Tipp wurde bereits 11.625 mal aufgerufen.

    Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

    Über diesen Tipp im Forum diskutieren
    Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

    Neue Diskussion eröffnen

    nach obenzurück


    Anzeige

    Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
    (einschl. Beispielprojekt!)

    Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
    - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
    - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
    Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
     
       

    Druckansicht Druckansicht Copyright ©2000-2015 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