C# Czat i zmiana koloru czcionki

0

Witam. Na pewnej stronie znalazłem opis i kod do zrobienia czatu.
Kod tutaj:
http://csharp.net-informations.com/communications/csharp-chat-client.htm

Zrobiłem wszystko i wszystko śmiga. Jednak chciałem dodać od siebie jakieś bajery np. właśnie zmianę koloru tekstu.
Wziąłem sobie do tego celu z toolboxa colorDialog i buttona. Zrobiłem by po kliknięciu buttona wyświetlało mi się okno zmiany koloru. Teraz chciałem by po wciśnięciu buttonu odpowiadającego za wysłanie wiadomości do okna zmieniało jego kolor na taki jaki wybrałem w oknie colorDialog1.
Taką linijkę napisałem w tym celu:

[code]textBox1.ForeColor = colorDialog1.Color[/code]
a całość dla wciśnięcia klawisza wygląda tak. Dodam że wiadomości wyświetlają się w textboxie1:
[code] private void button1_Click(object sender, EventArgs e)
{
byte[] outStream = System.Text.Encoding.ASCII.GetBytes(textBox2.Text + "$");
serverStream.Write(outStream, 0, outStream.Length);
serverStream.Flush();
textBox1.ForeColor = colorDialog1.Color

    }[/code]

niestety to nie działa i kompletnie nie mam pomysłu jak to inaczej zrobić. Jakieś porady?

0

Nie pokazałeś jak wyświetlasz ten dialog.
To raz, a dwa że przecież jak wysyłasz tekst to kolor się jakoś magicznie przecież nie przesyła razem z tekstem.

0

Ogólnie zależy co chcesz zrobić. Tak jak Azarien napisał - nie napisałeś jak wyświetlasz ten dialog.
Jeśli chodzi Ci o samą zmianę koloru wszystkich wiadomości w textBoxie to kod, który tu podałeś jest w porządku. Jeśli jednak chcesz żeby tekst posiadał kilka części w różnych kolorach to poleciłbym Ci użycie kontrolki WebBrowser, w której jest bardzo łatwo przeróżne formatowanie zastosować.

0

Kolega powiedział że to nie takie proste bo pierw trzeba przesłać informacje o zmianie koloru do serwera a serwer do reszty klientów. colordialog pokazuje po prostu tak:
private void button3_Click(object sender, EventArgs e)
{

        colorDialog1.ShowDialog();
        
        
    }
0

Proponuje zrobić to tak jak napisali, z wykorzystaniem WebBrowser do html'a lub użyć richTextBox'owych pól : SelectionStart, SelectionLenth, SelectionColor.
A do wysyłania używać np znaczków ascii jak to ma miejsce w przypadku IRC.
Możesz sobie zobaczyć kod mojego klienta irc, który właśnie obsługuje kolorki w dwie strony: http://4programmers.net/Forum/Off-Topic/Oceny_i_recenzje/196337-simplerelaychat_10

0

Serializować obiekt? Jak to ma być czat? Kiepski pomysł @maszynaz.
Stworzyć jakieś znaczniki, jak w przypadku rozmowy z serwerem IRC.

1 użytkowników online, w tym zalogowanych: 0, gości: 1