[RichTextBox -> VertikaleLinie]



  • Hallöchen,
    ich wollte in meine Richtextbox eine vertikale Linie malen um zu sehen , wenn man über 80 Zeichen kommt.Ich dachte mir einfach die OnPaint überschreiben und fertig. Leider deaktiviert man wenn man selber zeichnen möchte auch sämtliche anderen Zeichenlogiken (Schrift , Schriftart, Markierungen ect.)Jetzt wollte ich nicht unbedingt die ganze Paint nach programmieren um bloß eine zusätzliche Linie rein zu zaubern. Gibt es irgendwelche anderen Möglichkeiten?
    lG



  • Rufst du denn auch die base.OnPaint() auf?



  • Ja,
    allerdings sind die Windows internen Zeichenfunktion deaktiviert, wenn man
    SetStyle(ControlStyles.UserPaint); setzt damit die OnPaint überhaupt gerufen wird.



  • Stimmt, da hast du recht.
    In einem anderen Forum hatte ich schon mal eine ähnliche Anfrage: http://www.mycsharp.de/wbb2/thread.php?threadid=66355

    Probier mal den von 'floste' vorgeschlagenen Weg, d.h. Überschreiben von WndProc und Abfangen der WM_PAINT-Message:

    case 15://WM_PAINT
                if (!this.GetStyle(ControlStyles.UserPaint))
                {
                    this.DefWndProc(ref m);//Ruft die native Implementierung auf.
                    return;
                }
                this.WmPaint(ref m);//Ruft Onpaint auf
                return;
    


  • Hi Th69,
    danke für die Antwort
    das scheint auf jeden Fall der richtige Weg zu sein.
    Bei mir verhält sich meine Richtextbox zwar noch wie im ersten Fall
    aber ich werde mal schauen, ob ich das nicht hin bekomme;)
    thx grüße


Log in to reply