Textcursor in der Richtextbox an den Anfang setzen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Sk1p.

    Textcursor in der Richtextbox an den Anfang setzen

    Hallo,
    Ich hab das KeyDown-Ereignis für eine Richtextbox so abgeändert:

    VB.NET-Quellcode

    1. Private Sub mymsg_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Dim active_mymsg As RichTextBox If e.KeyCode = Keys.Enter Then active_mymsg = ActiveControl havefun() active_mymsg.Text = "" End If End Sub


    Dies funktioniert auch.
    Nur ist das Problem, dass der Text zwar gelöscht wird, aber hinterher noch ein Zeilenumbruch eingefügt wird und der Textcursor in der zweiten Zeile der Richtextbox landet.
    Weiß jemand was ich im KeyDown-Ereignis hinzufügen muss damit ich den Cursor wieder in die erste Zeile an den Anfang bekomme bzw. den Zeilenumbruch danach verhindere?

    VB.NET-Quellcode

    1. RichTextBox1.SelectionStart = 0
    2. RichTextBox1.SelectionLength = 0
    Wenn Du einen Zeilenumbruch verhindern willst:
    Staht da ein vbLf?

    VB.NET-Quellcode

    1. RichTextBox1.SelectionStart = 0
    2. RichTextBox1.SelectionLength = 1
    3. RichTextBox1.SelectedText = ""
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Es geht leider immer noch nicht.
    Ich hab jetzt einfach ein neues Projekt gemacht mit nur einer Richtextbox

    VB.NET-Quellcode

    1. Private Sub RichTextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyDown
    2. If e.KeyCode = Keys.Enter Then
    3. RichTextBox1.Text = ""
    4. RichTextBox1.SelectionStart = 0
    5. RichTextBox1.SelectionLength = 0
    6. RichTextBox1.Text = ""
    7. End If
    8. End Sub


    Mit diesem Code bleibt trotzdem nach jedem Enter der Textcursor in der zweiten Zeile der Richtextbox stecken X(
    Es scheint einfach so, dass er zuerst das tut was bei Keys.Enter passiert und danach hinterher den Standard-Event vbnewline dazu tut, was ich nicht unterbinden kann..

    EDIT:
    Ich hab jetzt den KeyDown-Ereignis mit KeyUp ersetzt und dann geht das ganze wieder...

    VB.NET-Quellcode

    1. Private Sub RichTextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyUp


    Mit KeyDown kriegt man es wahrscheinlich nicht so einfach hin..
    EDIT2:
    Also ich bin jetzt einfach zwei Ereignisse
    KeyDown und KeyUp
    Ich mach dann einfach noch im KeyUp-Event die Richtextbox nochmal leer damit der Cursor an den Anfang springt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Sk1p“ ()