119
fileButton.Enabled = false;
clearButton.Enabled = false;
connectionStatusLabel.Text = "Отключен";
подключитьсяToolStripMenuItem.Enabled = true;
showMessListBox.Items.Add("[" + DateTime.Now + "] Отключен от сервера");
showMessListBox.SelectedIndex = showMessListBox.Items.Count - 1;
showMessListBox.SelectedIndex = -1;
clientsList.Items.Clear();
}
//Делегат безопасного обновления сообщений
protected delegate void UpdateReceiveDisplayDelegate(string sender, string
message);
//Метод обновления сообщений
public void UpdateReceiveDisplay(string sender, string message)
{
showMessListBox.Items.Add("[" + DateTime.Now + "] " + sender + ": " +
message);
showMessListBox.SelectedIndex = showMessListBox.Items.Count - 1;
showMessListBox.SelectedIndex = -1;
}
//Делегат безопасного обновления списка клиентов
protected delegate void UpdateClientDisplayDelegate(string client);
//Метод обновления списка клиентов
public void UpdateClientDisplay(string client)
{
clientsList.Items.Add(client);
}
#endregion
#region Методы облегчения кода из метода принятия сообщений
//Метод получения списка мероприятий
DataTable MeasureMessage(string message)
{
List<string[]> table = new List<string[]>();
DataTable dt = new DataTable();
message = message.Remove(0, 3);
string[] tempArray = null;
string[] rows = message.Split('$');
foreach (string item in rows)
{
tempArray = item.Split('#');
table.Add(tempArray);
}
ListToDataTable(dt, table);
return dt;
}
//Метод получения списка клиентов
void ListClientMessage(string message)
{
message = message.Remove(0, 3);
string[] rows = message.Split('#');
Invoke(new ClearClientsListDelegate(ClearClientsList));
foreach (string item in rows)
Invoke(new UpdateClientDisplayDelegate(UpdateClientDisplay), item);