Пример #1
0
        /// <summary>
        /// Incoming data received event handler method
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Client_ConnectionChanged(object sender, ConnectionChangedEventArgs e)
        {
            //event gets called by Listener thread via Delegate

            if (ConversationTextBox.InvokeRequired) //element is on a different thread
            {
                MethodInvoker invoker
                    = new MethodInvoker(delegate() {
                    if (e.ConnMsg.StartsWith("Received"))
                    {
                        ConversationTextBox.AppendText(e.ConnMsg, Color.Blue);
                        ConversationTextBox.AppendText(Environment.NewLine);
                    }
                    else
                    {
                        ConversationTextBox.AppendText(e.ConnMsg, Color.Black);
                        ConversationTextBox.AppendText(Environment.NewLine);
                    }

                    //ConversationTextBox.Text += e.ConnMsg;
                });

                ConversationTextBox.BeginInvoke(invoker);
            }
            else
            {
                //business as usual
                //update the progress bar
                ConversationTextBox.Text += e.ConnMsg;
            }
        }
Пример #2
0
 /// <summary>
 /// send a message
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void SendMsgButton_Click(object sender, EventArgs e)
 {
     Client.WriteMessage(MessageTextBox.Text);
     client.Log(MessageTextBox.Text);
     ConversationTextBox.AppendText(">>" + MessageTextBox.Text, Color.Blue);
     ConversationTextBox.AppendText(Environment.NewLine);
     MessageTextBox.Text = "";
 }
Пример #3
0
 /// <summary>
 /// disconnect chat app
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void disconnectToolStripMenuItem_Click(object sender, EventArgs e)
 {
     //Start thread to listen for messages from server
     if (client != null)
     {
         client.Stop();
         ConversationTextBox.AppendText("<< Connection Closed >>", Color.Black);
         ConversationTextBox.AppendText(Environment.NewLine);
         connectToolStripMenuItem.Enabled = true;
         MessageTextBox.Enabled           = false;
     }
 }
Пример #4
0
        /// <summary>
        /// Event-ul de click pe butonul de send message
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SendMessageButton_Click(object sender, EventArgs e)
        {
            if (friendsList.SelectedIndex < 0)
            {
                friendsList.SelectedIndex = 0;
            }

            cliToSvr.SendMessage(username, friendsList.Items[friendsList.SelectedIndex].ToString().Split(' ')[0], SendMessageTextBox.Text);
            //admin1 - offline
            DateTime thisDay = DateTime.Now;

            ConversationTextBox.Text          += thisDay.ToString("dd/MM/yy H:mm:ss") + " | Me ---> " + SendMessageTextBox.Text + Environment.NewLine;
            SendMessageTextBox.Text            = string.Empty;
            ConversationTextBox.SelectionStart = ConversationTextBox.Text.Length;
            ConversationTextBox.ScrollToCaret();
        }
Пример #5
0
        /// <summary>
        /// Afiseaza covnersatia dintre userul curent si userul primit ca parametru
        /// </summary>
        /// <param name="receiver">Reveiver</param>
        private void DisplayConversation(string receiver)
        {
            string[] allmessages = cliToSvr.GetMessages(username, receiver);
            ConversationTextBox.Text = string.Empty;
            foreach (string message in allmessages)
            {
                if (message.Split(' ')[2].Equals(username))
                {
                    ConversationTextBox.Text += message.Split(' ')[0] + " " + message.Split(' ')[1] + " | Me ---> "; //+ message.Split(' ')[4] + Environment.NewLine;
                    for (int i = 4; i < message.Split(' ').Length; i++)
                    {
                        ConversationTextBox.Text += message.Split(' ')[i] + " ";
                    }
                    ConversationTextBox.Text += Environment.NewLine;
                }
                else
                {
                    ConversationTextBox.Text += message.Split(' ')[0] + " " + message.Split(' ')[1] + " | " + message.Split(' ')[2] + " ---> "; //+ message.Split(' ')[4] + Environment.NewLine;
                    for (int i = 4; i < message.Split(' ').Length; i++)
                    {
                        ConversationTextBox.Text += message.Split(' ')[i] + " ";
                    }
                    ConversationTextBox.Text += Environment.NewLine;
                }

                ConversationTextBox.SelectionStart = ConversationTextBox.Text.Length;
                ConversationTextBox.ScrollToCaret();
            }


            string friend      = friendsList.Items[friendsList.FindString(receiver)].ToString();
            string exclamation = " ";

            if (friend.Length > 1)
            {
                exclamation = friend.Substring(friend.Length - 1);
            }
            if (exclamation.Equals("!"))
            {
                friendsList.Items[friendsList.FindString(receiver)] = friend.Remove(friend.Length - 1);
            }
        }
Пример #6
0
        /// <summary>
        /// handle connect button to connect to server
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void connectToolStripMenuItem_Click(object sender, EventArgs e)
        {
            client = new Client();
            ConversationTextBox.AppendText("<< Client Started >>", Color.Black);
            ConversationTextBox.AppendText(Environment.NewLine);


            //Start thread to listen for messages from server
            client.Start(ipAddress, port, out errorMessage);

            //Main thread handles user input
            client.ConnectionChanged
                += new ChatLib.ConnectionChangedEventHandler(Client_ConnectionChanged);

            connectionThread = new Thread(client.Listen);
            connectionThread.IsBackground = true; //this will allow front end to kill it when closing
            connectionThread.Name         = "ConnectionThread";
            connectionThread.Start();

            disconnectToolStripMenuItem.Enabled = true;
            connectToolStripMenuItem.Enabled    = false;
            MessageTextBox.Enabled = true;
        }