Heyo!
Ich habe mal eine kleine Frage....
Wie schaffe ich das, dass ein Text, welcher zwischen zwei Zeichen geschrieben wird, anders formatiert wird.
Z.B.:
Eingabe: Hallo, wie heißt *du*?
Ausgabe: Hallo, wie heißt *du*?
Das ganze soll in einer RichtextBox ablaufen und im TextChanged Event passieren.
Folgendes habe ich bereits gefunden, jedoch, wenn ich den Text eingebe, wird dieser markiert, fett dargestellt, und der Cursor springt vor das *.
Sobald ich weiter schreiben will, und auch hinter dem Wort, springt der Cursor immer nach vorne.
Der Code:
Spoiler anzeigen
Ich habe mal eine kleine Frage....
Wie schaffe ich das, dass ein Text, welcher zwischen zwei Zeichen geschrieben wird, anders formatiert wird.
Z.B.:
Eingabe: Hallo, wie heißt *du*?
Ausgabe: Hallo, wie heißt *du*?
Das ganze soll in einer RichtextBox ablaufen und im TextChanged Event passieren.
Folgendes habe ich bereits gefunden, jedoch, wenn ich den Text eingebe, wird dieser markiert, fett dargestellt, und der Cursor springt vor das *.
Sobald ich weiter schreiben will, und auch hinter dem Wort, springt der Cursor immer nach vorne.
Der Code:
VB.NET-Quellcode
- Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
- mark("*", "+", FontStyle.Bold)
- mark("_", "-", FontStyle.Underline)
- mark("#", "'", FontStyle.Italic)
- End Sub
- Sub mark(ByVal strvon As String, ByVal strto As String, ByVal style As FontStyle)
- If RichTextBox1.Text.Contains(strvon) And RichTextBox1.Text.Contains(strto) Then
- RichTextBox1.SelectionStart = RichTextBox1.Find(strvon)
- RichTextBox1.SelectionLength = RichTextBox1.Find(strto) - RichTextBox1.Find(strvon) + 1
- RichTextBox1.SelectionFont = New Font(RichTextBox1.SelectionFont, style)
- RichTextBox1.SelectionLength = 0 'Das hab ich probiert, damit der Text wieder deselektiert wird. Jedoch dann springt er wieder vor das *
- End If
- End Sub