textbox mit verschiedenen Farben
- Allgemein
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von ichbines.
-
-
Hallo, ichbines.
Ob und wie das mit einem gewöhnlichen Textfeld machbar wäre, weiß ich nicht - mit einem RTF-Textfeldes (Rich Text Format) geht das jedoch sehr einfach. Du musst dafür über Projekt/Komponenten einen Haken bei "Microsoft Rich Text Control 6.0" machen (oder alternativ per "Durchsuchen" nach der Datei "Richtx32.ocx" suchen).
Anschließend kannst du z.B. über die Eigenschaft "SelStart" einen Text innerhalb des RTF-Dokuments selektieren und z.B. jedem einzelnen Buchstaben per "SelColor" eine andere Farbe geben. Allgemein gilt die RTF-Textbox als wesentlich umgänglicher, da es viele Funktionen bereits beeinhaltet, die bei einem gewöhnlichen Textfeld fehlen (z.B. das Finden von Strings, das automatische Öffnen und Speichern von Dateien, Handling von Einrückungen etc.).
Der Nachteil liegt natürlich auf der Hand: jeder PC, auf dem das Programm laufen soll, braucht ebenfalls die Datei Richtx32.ocx.
mfG,
MalcolmDieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Malcolm“ ()
-
Hallo zusammen,
Original von Malcolm
Der Nachteil liegt natürlich auf der Hand: jeder PC, auf dem das Programm laufen soll, braucht ebenfalls die Datei Richtx32.ocx.
... das ist der Vorteil! Jeder Programmierer kann ein Setup-Programm schreiben und damit dem Anwender die Dateien liefern, die er benötigt. Es soll sogar Setupprogramme geben, welche die mitgelieferten Dateien gleich im System registrieren
Gruß Markus -
Ja schon.
Trotzdem ist es einen Deut aufwändiger als einfach eine Textbox zu benutzen :). Natürlich wird dieser Nachteil von den vielen Vorteilen, die ein RTF-Feld besitzt, mehr als aufgewogen ...
Aber anscheinend hat der TE ohnehin keinen Bedarf mehr an einer Beantwortung.
mfG,
MalcolmDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Malcolm“ ()
-
-
ich habe es jetzt mit einem RTF-Textfeld probiert:
(alles in einen timer eingebaut)
text1.text = 123456 + vbnewline + text1.text
text1.select(0 , 6)
text1.selectioncolor = color.red
das problem ist nun: bei der ersten "aktualisierung" wird nur "123456" rot,
sobald aber nochmal text dazu kommt ist alles rot wieso?
MfG -
Hallo ichbines,
benutzerdefinierte Funktionen wie select solltest du erklären, wir können ja nicht hellsehen....
Probiere mal dies (keine Ahnung, was deine Problematik auslöst):
Gruß Markus -
Original von ichbines
also:
hatte nen fehler im posting zuvor,
text1.text = "123456" + vbnewline + "bla bla bla" + vbnewline + text1.text
text1.select(0 , 6)
text1.selectioncolor = color.red
der text soll dann so aussehen:
123456
bla bla bla
123456
bla bla bla
123456
bla bla bla
select ist ne feste anweisung bei vb.net (wusste nicht, dass es die bei vb noch nicht gab) und legt fest von wo bis wo der text makiert wird.
select(0,6): 0 = startzeichen, 6 gleich letztes zeichen
selectioncolor: farbe des markierten textes
MfG -
-
Hi!
1. Hat sich die Setup-Frage geklärt, da die RTB fester Bestandteil des Framework 1.x und 2.0 ist
2. Soll der neue Text wirklich oben dran geschrieben werden?
3. Versuch mal
Wenn das nüx hilft, schau ichs mir mal genauer an -
-
Hallo,
Original von ichbines
@alchimist:
Verwende ich deinen Code, siehts so aus...
sorry, hatte verstanden, dass immer das neuste rot sein soll...
Ich weiß auch keine elegante Lösung, außer dieses: Merke dir, an welchen Stellen Text andersfarbig sein soll und wende dies nach dem Ändern des Inhalts an.
Gruß Markus -
-
hi!
Das Problem ist, dass bei
aus irgendeinem Grund die "Normal"-Farbe geändert wird Oo
Und komischerweise erst beim 2ten mal, wenn man das macht ...
Typisch Microsoft eben
Abhilfe schafft, wenn man den neuen Text unten dran hängt
VB.NET-Quellcode
- Public Class Form1
- Inherits System.Windows.Forms.Form
- [Windows Form Designer generated code]
- Dim oldLen As Long
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- RTB1.AppendText("123456" & vbNewLine & "Text" & vbNewLine)
- End Sub
- Private Sub RTB1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RTB1.TextChanged
- RTB1.Select(oldLen + 0, 6)
- RTB1.SelectionColor = Color.Red
- oldLen = RTB1.Text.Length
- End Sub
- End Class
Ich hab aber leider keine Ahnung, wie man automatisch scrollt, was natürlich ein großer Nachteil an der Sache ist ....Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mad Andy“ ()
-
-
-
-
Ähnliche Themen
-
domipoppe - - Sonstige Problemstellungen
-
DoomStyler - - Internet- und Netzwerkprogrammierung
-
1 Benutzer hat hier geschrieben
- Gast (17)