kostenloser Webspace werbefrei: lima-city


Visual Basic - Text verändern

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    wavenet

    wavenet hat kostenlosen Webspace.

    Also ich hab ein mehrzeiliges Textfeld und jedesmal wenn in diesem Textfeld
    zb.: test vorkommt soll er test rot schreiben aber den restlichen Text normal in schwarz darstellen.

    Ist soetwas möglich? Wenn ja wie realisiere ich das?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    In einem normalen Textfeld kannst du ohne kompliziertere Änderungen die Schriftfarbe einzelner Wörter nicht ändern. Um das möglichst einfach zu lösen, solltest du eine RichtextBox verwenden, dort können Formatierungen vorgenommen werden, auch einzeln.

    Du suchst also dann in der RichtextBox nach dem Wort und ersetzt es durch das gleiche Wort mit entsprechenden Formatierungstags, am besten über .Replace() ;-)
  4. Autor dieses Themas

    wavenet

    wavenet hat kostenlosen Webspace.

    so ich hab das jetzt so versucht:
    Private Sub txt_code_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_code.TextChanged
    txt_code.Text = Replace(txt_code.Text, "test", "keiner")
    End Sub


    und wenn ich jetzt etwas eingebe schreibt er es spiegelverkehrt (netter effekt aber leider nicht erwünscht)

    was hab ich daran falsch gemacht?
  5. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Dass du nun "spiegelverkehrt" schreibst, ist völlig klar. Denn du weist dem Textfeld einen neuen Text zu, somit wird der Textcursor wieder an den Anfang des Textes gesetzt nach jedem Tippen. Also musst du in der Funktion den Textcursor wieder an das Ende der Textbox setzen.
    Beispiel:
    Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
            Me.RichTextBox1.Text = Me.RichTextBox1.Text.Replace("test", "leer")
            Me.RichTextBox1.Select(Me.RichTextBox1.Text.Length, 0)
        End Sub
  6. Autor dieses Themas

    wavenet

    wavenet hat kostenlosen Webspace.

    aso ja jetzt ist mir alles klar =) dankeschön =)

    noch eine frage: wenn das jetzt eingen ganzen text betrifft der zwischen () oder "" steht wie mach ich das dann? oder ist das dann zu umständlich?
  7. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Also du meinst z.B. Text ersetzen, der in einer Klammer steht? Das ist auch kein Problem dank regulären Ausdrücken:
    Me.RichTextBox1.Text = System.Text.RegularExpressions.Regex.Replace(Me.RichTextBox1.Text, "\([^\)]*\)", "leer")
    Me.RichTextBox1.Select(Me.RichTextBox1.Text.Length, 0)


    In diesem Beispiel wird der Text zwischen zwei Klammern (...) ersetzt durch "leer". Allerdings ist es etwas schwieriger, die regulären Ausdrücke zu formulieren ;-)
  8. Autor dieses Themas

    wavenet

    wavenet hat kostenlosen Webspace.

    Ahh ja genau das meinte ich =) Dankeschön, funktioniert wie immer. :)

    Ich frag gleich noch was!

    Also ich hab einen Button der fügt einen text in die Richtextbox, mit folgenden Code, ein:

    Private Sub txt_ban_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_ban.Click
    txt_code.Text = txt_code.Text & "ON *:BAN:*:#: {" & vbNewLine & vbNewLine & "}" & vbNewLine
    End Sub


    Das funktioniert auch nur das Problem ist das es immer am ende eingefügt wird (auch ganz klar) und nicht dort wo der Cursor für die Texteingabe steht. Sollte doch eig möglich sein das er das dort einfügt oder? Wenn ja dann die große frage wie nur?
  9. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Über die Methode .Insert(startIndex As Integer, value As String) kannst du bei Text-Objekten an bestimmten Stellen beliebigen Text einfügen. Die Cursor-Position bei Text- oder Richtextboxen im Text kannst du über .SelectionStart abfragen.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!