예제 #1
0
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (previousIndex != listBox1.SelectedIndex)
            {
                string room  = listBox1.GetItemText(listBox1.SelectedItem); //Recupere le nom de la room selectionnée
                int    index = Room_client.getIndex(room);                  //Trouve son index

                if (Client.rooms[index].subscribe == false)                 //envoi du message subscribe pour la room nouvellement selectionnée au serveur
                {
                    c.send(new Message(new List <string>()
                    {
                        room
                    }, null, 0));

                    Client.rooms[index].subscribe = true;   //On active la room chez le client
                }

                texte.Focus();

                lock (discussion)
                {
                    Client.rooms[previousIndex].save(discussion.Text);        //Sauvegarde la discussion dans la mémoire
                    discussion.Clear();
                    discussion.AppendText(Client.rooms[index].chatbox);       //Affiche son texte
                    previousIndex = listBox1.SelectedIndex;
                }
            }
        }
예제 #2
0
        public void Afficher(object sender, Message m)
        {
            if (this.discussion.InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(Afficher);  //Thread safe : ajout texte à textbox
                this.Invoke(d, new object[] { this, m });
            }
            else
            {
                string text = m.Content[0] + "\r\n";
                string room = listBox1.GetItemText(listBox1.SelectedItem);

                if (m.Room == room)
                {
                    discussion.AppendText(text);  //Affichage dans la textbox si la room qui reçoit le message est selectionnée
                }
                else
                {
                    int id = Room_client.getIndex(m.Room);
                    Client.rooms[id].chatbox += text;   //Rajout du message dans la memoire si on ne voit pas la discussion : la taille du string augmente, mais lors de
                }                                       //l'affichage dans la textbox, la textbox a un algo qui limite la taille
            }
            m = null;
        }