//Загрузка формы private void ChatForm_Load(object sender, EventArgs e) { //Задаем иконку this.Icon = Properties.Resources.header_chat; #region Добавляем контролы /*Создаем textBox для ввода и помещаем его на форму*/ enterBox = new DBTextBox(); enterBox.Multiline = true; enterBox.WordWrap = true; SetTextBoxBounds(ref enterBox); enterBox.KeyDown += EnterBox_KeyDown; WorkingArea.Controls.Add(enterBox); /*Создаем кнопку для отправки сообщения*/ enterButton = new Button(); enterButton.FlatStyle = FlatStyle.Flat; enterButton.FlatAppearance.BorderSize = 0; enterButton.Image = new Bitmap(Properties.Resources.enter_icon, new Size(enterHeight, enterHeight)); enterButton.BackColor = Global.textBoxColor; SetButtonBounds(ref enterButton); WorkingArea.Controls.Add(enterButton); chatTable = new DBMessagingBox(); SetchatTableBounds(ref chatTable); WorkingArea.Controls.Add(chatTable); enterButton.Click += EnterButton_Click; }
/*Задает позицию и размеры панели для отображения элементов*/ private void SetchatTableBounds(ref DBMessagingBox panel) { panel.Size = new Size(Convert.ToInt32(WorkingArea.Width - 5), WorkingArea.Height - enterBox.Height - 10); panel.Location = new Point(5, 5); foreach (MessagePanel box in chatTable.Controls) { if (box.Message.type == ChatMessage.MessageType.System) { box.SetWidth(Convert.ToInt32(chatTable.ColumnStyles[0].Width) * 2); } else { box.SetWidth(Convert.ToInt32(chatTable.ColumnStyles[0].Width)); if (box.Message.type == ChatMessage.MessageType.Incoming) { box.Location = new Point(0, Convert.ToInt32(chatTable.ColumnStyles[0].Width) - box.Width); } } } }