RichTextBox zeile ermitteln

  • VB6

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Gast.

    RichTextBox zeile ermitteln

    wie kann ich in einer RichTextBox die zeile in der ich gerade schreibe ermitteln?
    und wie kann ermitteln wieviele zeichen sich vor der aktuellen schreibmarkierung befinden (hoffe ihr wisst was damit gemaint ist *g*)

    danke!
    Hallo "Devikilla",
    die RTF-Box ist in der Tat etwas Delikat. (RTF für RichtTextFile)
    Ich hatte vor ca. einem Jahr ähnliche Probleme. Ich wollte eine RTF-Box vom Anwender füllen lassen und ggf. Texte dem erkannten Inhalt gemäß farblich markieren.
    Es ist eigentlich ganz einfach:
    1. Zunächst sollte die Eigenschaft .MultiLine = True gesetzt sein!
    2. Die Eigenschaft .SelStart gibt entweder die Anfangsposition einer Textmarkierung (die Länge dann via .SelLength) an, oder die Position des Eingabecursors!
    3. Wichtig bei der Positionsangabe ist, daß sich diese auf die Eigenschaft .Text bezieht (also auch über Steuerzeichen wie LF und CR = neue Zeile CHR(13) & CHR(10)) und nicht auf das RTF-Format (.TextRTF)!!!!
    4. Die Anzahl der Zeichen vor der Schreibmarkierung ist somit einfach zu ermitteln, indem aus der Eigenschaft .Text alle Zeichen bis zur Schreibmarkierung zählt und ggf. alle CHR(13) & CHR(10) Kombinationen für neue Zeile (oder auch CHR(12) für neue Seite) abzieht!
    Ansonsten ist das alles sehr einfach zu handhaben.
    Tip: Das Ereignis _KeyUp(KeyCode As Integer, Shift As Integer) wird nach der letzten Bewegung des Mauszeigers ausgelöst, für die Mausclicks ist eine seperate Auswertung notwendig! (Normale Mausereignisse (DOWN/UP) werden ggf. nicht korrekt ausgelöst!)

    hallo andy,
    vielen dank schon mal für deine antwort, hat mir schon recht gut weitergeholfen!
    aber ein problem habe ich immernoch. ich habe das mit der ermittlung der zeile noch nicht richtig hinbekommen, in meinem formular soll die momentane zeile in der sich die schreibmarkierung auf einem label angezeigt werden. das von dir erklärte grundprinzip habe ich schon verstanden, weis aber nicht wie ich es umsetzten soll. ein kleines beispiel würde mir da echt weiterhelfen, wäre nett wenn das möglich wäre, natürlich nur wenn es keine umstände macht