Textfeld mit mehereren Schriftfarben

Gulli

Mitglied
Hi, also ich möchte gerne, dass in einem Multiline-Textfeld bestimmte Text-teile eine andere Farbe haben. Ich brauche das ganze für ein Chatprgramm aber entweder bekommt der ganze Text die Farbe oder gar kein Teil. Gibt es da irgentwelche Tricks, oder geht das garnicht mit Textboxen?:confused:

Bin für jede Hilfe dnakbar.

GreeZ
Gulli
 
Hi, also

@Filone

Ich hab mir das mal angesehen, bin aber von APIs nicht gerade begeistert und auch denke ich, das die API in keine Textbox reinzeichent. Ausserdem hätte ich das dann auch seber mit nem Graphics-Objekt machen können.

@Alex

Nach etlichem rumprobiern hab ich es leider nicht hinbekommen.

@All

Ich hab auch schon bei :google: nach Steuerelementen gesucht, abernichts gefunden.
Wer ICQ kennt wird wissen was ich mit mehreren Farben meine. (Im Chatfenster)

Ich werde aber weiterhin hier und da gucken und wenn ich was gefunden hab hie posten.

Bis dahin:
GreeZ
Gulli

PS: Kann man hier im Forum seinen Namen ändern lassen? Nur so eine Frage.
 
Bei der RichTextBox gibts es die Eigenschaften SelectionColor etc. und die Methode Select. Dies sollte dir eigentlich helfen.

Real Time SynTax Colorizing

Bei dem Link wirst du zwar VB.net Code finden, sollte nciht schwer sein zu erkennen welche Methoden etc. benutzt werden.

Also, schau dir mal den Code an, ich habe ihn nicht angesehen, aber ich denke er sollte dir helfen deine gewünschte Funktionalität umzusetzen.

Wegen dem Ändern des Namens bekommst gleich ne private Nachricht von mir. =)

// Edit:
lol - Sehe gerade das wir hier eh im VB.net Forum sind, dachte ist ein C# Thread *g*
 
[ot]Leider wird einem keine Zahl in den Name geschrieben. Weil das ja leet is und nich zu tutorials.de passt. *grml*[/ot]

Danke für den Link, hat mir geholfen!
 
Hi, so ich hab mir das mal angeschaut und es hat mir auch geholfen.
Ich habs dann gleich realisiert und es klappt nicht. Um genau zu sein: Die erste Zeile wird richtig gefärbt. Ab dann geht die Färbung so nach Lust und Laune. Die erste Zeile sollte eigentlich Organe bleiben wird aber Rot und die 2. wird zur Hälfte Rot und dann Orange.

Das is natürlich nicht gerade das was ich will. Ich benutze auch nicht die Methoden, sondern was selbst zusammen gebasteltes:

Code:
'txtNachrichten ist die Richtextbox
'Der Code mit den Sockets usw. wurde weggelassen
'wegen Platz sparen *g*

Private str() As String = {"Server gestartet." , "Warte auf Verbindungen"}

Public Sub frmMain_Load(ByVal e As System.EventArgs, ByVal sender As System.Object) Handles MyBase.Load

txtNachrichten.SelectionStart = 0
txtNachrichten.Text = str(0) & Environment.NewLine
txtNachrichten.SelectionLength = str(0).Length
txtNachrichten.SelectionColor = Color.Orange

End Sub

'Bis hierhin  alles

Public Sub btnStart_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles btnStart.Click

txtNachrichten.SelectionStart = str(0).Length + 1
txtNachrichten.Text &= str(1) & Environment.NewLine
txtNachrichten.SelectionLength = str(1).Length
txtNachrichten.SelectionColor = Color.Red

End Sub

Bei nicht Verstädnis kann ich auch noch einen Screenshot nachliefern. Ich weiss nicht was daran falsch ist, also bitte helft mir.

GreeZ
Gulli
 
Hi, ich habs hinbekommen. Hatte 2 Zeilen vertauscht:

Code:
'txtNachrichten ist die Richtextbox
'Der Code mit den Sockets usw. wurde weggelassen
'wegen Platz sparen *g*

Private str() As String = {"Server gestartet." , "Warte auf Verbindungen"}

Public Sub frmMain_Load(ByVal e As System.EventArgs, ByVal sender As System.Object) Handles MyBase.Load

txtNachrichten.SelectionStart = 0
txtNachrichten.Text = str(0) & Environment.NewLine
txtNachrichten.SelectionLength = str(0).Length
txtNachrichten.SelectionColor = Color.Orange

End Sub

'Bis hierhin  alles

Public Sub btnStart_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles btnStart.Click

txtNachrichten.Text &= str(1) & Environment.NewLine ' Die beiden Zeilen
txtNachrichten.SelectionStart = str(0).Length       ' mussten vertaucht werden
txtNachrichten.SelectionLength = str(1).Length
txtNachrichten.SelectionColor = Color.Red

End Sub
 
Hi
Mit follgendem Code wollte ich bezwecken, dass die 1. Zeile automatisch Fett ist. Beim erstaufruf ist dies auch so. Aber nachdem man auf ein anderes oder das selbe Element geklickt hat, ist der ganze Text Fett. Was ist Falsch?
Code:
    Private Sub TVHelp_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TVHelp.DoubleClick
        Dim currentFont As System.Drawing.Font = txtHelp.SelectionFont
        Dim Absatz As Array

        Select Case TVHelp.SelectedNode.Text
            Case Is = "Hilfe" : Helptext = "Willkommen bei der Hilfe." + vbNewLine + vbNewLine + "Bitte wählen Sie einfach ein Begriff auf der linken Seite aus"
            Case Is = "Lame.exe" : Helptext = "Lamedatei" + vbNewLine + vbNewLine + "Hier soll die lame.exe angegeben werden. Sie wird benötigt, um die mp3 zu erstellen"
            Case Is = "mp3 Input File" : Helptext = "mp3 Input File" + vbNewLine + vbNewLine + "Hier wird die Audiodatei angegeben, welche in das mp3-Format umgewandelt werden soll"
        End Select
        txtHelp.Text = Helptext
        txtHelp.SelectionStart = 0

        Absatz = Split(Helptext, vbNewLine)
        txtHelp.SelectionLength = Len(Absatz(0))

        txtHelp.SelectionFont = New Font( _
         currentFont.FontFamily, _
         currentFont.Size, _
         FontStyle.Bold)

    End Sub

mfg
 

Neue Beiträge

Zurück