public void loadMessages() { System.Data.SqlClient.SqlDataReader dataR = Connection.getReader("SELECT SenderID, Message, DateS, MessageID, State, DateR FROM Msgs WHERE SenderID IN (" + Account.Accid + ", " + this.ContactID + ") AND RecieverID IN (" + Account.Accid + ", " + this.ContactID + ");"); while (dataR.Read()) { ucMessage ucM = new ucMessage(); ucM.MessageID = int.Parse(dataR.GetValue(3).ToString()); ucM.Info.Text = (int.Parse(dataR.GetValue(0).ToString()) == Account.Accid) ? Account.Username : label_username.Text; ucM.Info.Text += " • " + ((DateTime.Now - DateTime.Parse(dataR.GetValue(2).ToString())).TotalHours > 24 ? ((DateTime.Now - DateTime.Parse(dataR.GetValue(2).ToString())).TotalHours < 48 ? "Hier" : DateTime.Parse(dataR.GetValue(2).ToString()).ToShortDateString()) : DateTime.Parse(dataR.GetValue(2).ToString()).ToShortTimeString()); ucM.Message.Text = dataR.GetString(1); ucM.Message.Height = getMessageHeigh(ucM.Message) * 15; ucM.Height += (getMessageHeigh(ucM.Message) * 15) - 10; ucM.Top = (5 + getPreviousHeights()) + panel_main.Controls.OfType <ucMessage>().Count <ucMessage>() * 5; ucM.Left = 20; ucM.BackColor = AppSettings.ContactBackgroundColor; ucM.Message.BackColor = AppSettings.ContactBackgroundColor; ucM.Message.ForeColor = AppSettings.ContactTextColor; ucM.Info.ForeColor = AppSettings.ContactTextColor; ucM.MsgState.Top = ucM.Message.Bottom - 10; ToolTip ttInfo = new ToolTip(); ttInfo.ToolTipIcon = ToolTipIcon.Info; ttInfo.ToolTipTitle = "Message pas lu"; ttInfo.SetToolTip(ucM.MsgState, "L'utilisateur n'a pas encore vu le message"); if (int.Parse(dataR.GetValue(0).ToString()) == Account.Accid) { ucM.Left = (panel_main.Width - ucM.Width) - 20; ucM.BackColor = AppSettings.AccountBackgroundColor; ucM.Message.BackColor = AppSettings.AccountBackgroundColor; ucM.Message.ForeColor = AppSettings.AccountTextColor; ucM.Info.ForeColor = AppSettings.AccountTextColor; ucM.MsgState.Visible = true; if (bool.Parse(dataR.GetValue(4).ToString()) == true) { ucM.MsgState.Image = Properties.Resources.icon_messageRead; ttInfo.ToolTipTitle = "Message lu"; ttInfo.SetToolTip(ucM.MsgState, DateTime.Parse(dataR.GetValue(5).ToString()).ToShortTimeString()); } } panel_main.Controls.Add(ucM); ucM.Scroll += new ScrollEventHandler(panel_main_Scroll); } dataR.Close(); Connection.closeCon(); if (panel_main.Controls.OfType <ucMessage>().Count <ucMessage>() == 0) { label_noMessages.Visible = true; } }
private void button_send_Click(object sender, EventArgs e) { ucMessage ucM = new ucMessage(); ucM.Info.Text = Account.Username + " • " + DateTime.Now.ToShortTimeString(); ucM.Message.Text = textBox_chatBox.Text; ucM.Message.Height = getMessageHeigh(ucM.Message) * 15; ucM.Height += (getMessageHeigh(ucM.Message) * 15) - 15; ucM.Top = (panel_main.Controls.OfType <ucMessage>().Count <ucMessage>() == 0) ? 5 : panel_main.Controls.OfType <ucMessage>().Last <ucMessage>().Bottom + 5; ucM.Left = (panel_main.Width - ucM.Width) - 20; ucM.BackColor = AppSettings.AccountBackgroundColor; ucM.Message.BackColor = AppSettings.AccountBackgroundColor; ucM.Message.ForeColor = AppSettings.AccountTextColor; ucM.Info.ForeColor = AppSettings.AccountTextColor; ucM.MsgState.Top = ucM.Message.Bottom - 15; ucM.MsgState.Visible = true; ToolTip ttInfo = new ToolTip(); ttInfo.ToolTipIcon = ToolTipIcon.Info; ttInfo.ToolTipTitle = "Message pas lu"; ttInfo.SetToolTip(ucM.MsgState, "L'utilisateur n'a pas encore vu le message"); panel_main.Controls.Add(ucM); ucM.Scroll += new ScrollEventHandler(panel_main_Scroll); if (panel_main.Controls.OfType <ucMessage>().Count <ucMessage>() == 0) { label_noMessages.Visible = true; } else { label_noMessages.Visible = false; } Connection.cmd.Parameters.Clear(); Connection.cmd.Parameters.AddWithValue("@message", textBox_chatBox.Text); Connection.sendQuery("INSERT INTO Msgs VALUES(" + Account.Accid + ", " + this.ContactID + ", @message, '" + DateTime.Now + "', 0, '" + DateTime.Now + "');"); Connection.closeCon(); ucEmoji_.Visible = false; panel_main.ScrollControlIntoView(ucM); textBox_chatBox.Clear(); }