/*Модальное отображение диалога*/ public static DialogResult Show(String text, String caption, Global.DialogTypes type) { DialogForm tempDialog = new DialogForm(text, caption, type); tempDialog.ShowDialog(); DialogResult dialog = tempDialog.result; tempDialog.Close(); return(dialog); }
public static string Show(String text, String caption, Global.DialogTypes type, out DialogResult dialogResult) { DialogForm tempDialog = new DialogForm(text, caption, type); tempDialog.ShowDialog(); dialogResult = tempDialog.result; string newValue = tempDialog.editText; tempDialog.Close(); return(newValue); }
/*Поток для приема подключений*/ public async Task RunAsync() { try { var nat = new NatDiscoverer(); var cts = new CancellationTokenSource(5000); // using SSDP protocol, it discovers NAT device. var device = await nat.DiscoverDeviceAsync(PortMapper.Upnp, cts); // Пробрасываем порты для экрана await device.CreatePortMapAsync(new Mapping(Protocol.Udp, Global.receivePort, Global.receivePort, "ToServer port")); await device.CreatePortMapAsync(new Mapping(Protocol.Udp, Global.sendPort, Global.sendPort, "ToClient port")); //Пробрасываем порты для чата и звука await device.CreatePortMapAsync(new Mapping(Protocol.Udp, Global.communicationsSendPort, Global.communicationsSendPort, "Chat & Sound send port")); await device.CreatePortMapAsync(new Mapping(Protocol.Udp, Global.communicationsReceivePort, Global.communicationsReceivePort, "Chat & Sound receive port")); } catch (Exception ex) { if (ex.GetType().Name != "NatDeviceNotFoundException") { DialogForm.Show("Ошибка", ex.Message, Global.DialogTypes.message); } } try { /*Привязываем сокеты к серверному адресу*/ screenListener.Bind(hostPoint); mediaListener.Bind(new IPEndPoint(IPAddress.Parse("0.0.0.0"), Global.communicationsReceivePort)); /*Ждем инициализации удаленного устройства*/ await ConnectAsync(); /*Запускаем задачи чтения данных*/ Task readScreenCommands = new Task(ReadScreen); readScreenCommands.Start(); Task readMediaCommands = new Task(ReadMedia); readMediaCommands.Start(); /*Запускаем задачу отправки данных*/ Task writeScreenCommands = new Task(WriteScreen); writeScreenCommands.Start(); Task writeMediaCommands = new Task(WriteMedia); writeMediaCommands.Start(); screenActions.Start(); /*Ожидаем завершения задач*/ Task.WaitAll(readScreenCommands, writeScreenCommands, readMediaCommands, writeMediaCommands); } catch (Exception ex) { DialogForm.Show("Ошибка", ex.ToString(), Global.DialogTypes.message); } }
private void MainServerForm_FormClosing(object sender, FormClosingEventArgs e) { DialogResult dialogResult = DialogForm.Show("Выход", "Завершить работу программы?", Global.DialogTypes.close); if (dialogResult == DialogResult.Yes) { notifyIcon.Dispose(); chat.Dispose(); properties.Dispose(); this.Dispose(); } else { e.Cancel = true; } }
//Закрытие формы public override void DBForm_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; if (enterBox.Text != "") { DialogResult hideDialog = DialogForm.Show("Выход из чата", "У вас остались неотправленные \nсообщения. Продолжить?", Global.DialogTypes.close); if (hideDialog == DialogResult.Yes) { enterBox.Clear(); this.Hide(); } } else { this.Hide(); } }
public override void DBForm_FormClosing(object sender, FormClosingEventArgs e) { if (!Global.connection.Connected) { DialogResult dialogResult = DialogForm.Show("Выход", "Завершить работу программы?", Global.DialogTypes.close); if (dialogResult == DialogResult.Yes) { this.Dispose(); } else { e.Cancel = true; } } else { e.Cancel = true; Hide(); } }
/*Загрузка формы*/ private void WaitConnectionForm_Load(object sender, EventArgs e) { int marginCoef = 10; this.Height = 200; /*Генерируем случайный пароль*/ Global.securityCode = GetRandomCode(8); /*Инициализируем экранную переменную*/ Global.screenActions = new ScreenActions(); /*Инициализируем медиа-переменную*/ Global.mediaData = new MediaData(); #region Контролы /*Label'ы*/ DBLabel nameLabel = new DBLabel("Имя пользователя:"); DBLabel ipLabel = new DBLabel("Текущий адрес:"); DBLabel passLabel = new DBLabel("Пароль:"); username = new DBCopyTextBox(Global.username.ToString()); address = new DBCopyTextBox(String.Format(Global.externalIP + ":{0}", Global.receivePort)); pass = new DBCopyTextBox(Global.securityCode); nameLabel.Location = new Point(marginCoef, marginCoef * 2); ipLabel.Location = new Point(marginCoef, nameLabel.Location.Y + nameLabel.Height + marginCoef); passLabel.Location = new Point(marginCoef, ipLabel.Location.Y + ipLabel.Height + marginCoef); username.Location = new Point(nameLabel.Width + marginCoef, nameLabel.Location.Y); address.Location = new Point(ipLabel.Width + marginCoef, ipLabel.Location.Y); pass.Location = new Point(passLabel.Width + marginCoef, passLabel.Location.Y); WorkingArea.Controls.Add(nameLabel); WorkingArea.Controls.Add(ipLabel); WorkingArea.Controls.Add(passLabel); WorkingArea.Controls.Add(username); WorkingArea.Controls.Add(address); WorkingArea.Controls.Add(pass); /*Кнопки редактирования*/ changeUsernameButton = new DBIconButton(Properties.Resources.edit_icon); changeUsernameButton.Location = new Point(username.Location.X + username.Width, username.Location.Y); changePortButton = new DBIconButton(Properties.Resources.edit_icon); changePortButton.Location = new Point(address.Location.X + address.Width, address.Location.Y); refreshPassButton = new DBIconButton(Properties.Resources.refresh_icon); refreshPassButton.Location = new Point(pass.Location.X + pass.Width, pass.Location.Y); /*По нажатию на кнопку вызываем диалог изменения свойства*/ changeUsernameButton.Click += ((o, ev) => { DialogResult result = new DialogResult(); string editField = DialogForm.Show("Имя пользователя", Global.username, Global.DialogTypes.edit, out result); if (result == DialogResult.OK) { Global.username = editField; } username.Text = Global.username; changeUsernameButton.Location = new Point(username.Location.X + username.Width, username.Location.Y); }); changePortButton.Click += ((o, ev) => { DialogResult result = new DialogResult(); string editField = DialogForm.Show("Порт", Global.username, Global.DialogTypes.edit, out result); if (result == DialogResult.OK) { Global.receivePort = Convert.ToInt32(editField); address.Text = String.Format(Global.externalIP + ":{0}", Global.receivePort); changePortButton.Location = new Point(address.Location.X + address.Width, address.Location.Y); Global.connection = new RemoteConnection(); } }); /*По нажатию на кнопку обновляем пароль*/ refreshPassButton.MouseClick += RefreshPassButton_MouseClick; WorkingArea.Controls.Add(changeUsernameButton); WorkingArea.Controls.Add(changePortButton); WorkingArea.Controls.Add(refreshPassButton); #endregion server = new MainServerForm(); server.properties = this; /*Инициализируем сетевую переменную*/ Global.connection = new RemoteConnection(); /*Заводим таймер на отслеживание подключения*/ Timer connectionMonitor = new Timer(); connectionMonitor.Interval = 100; connectionMonitor.Tick += ((o, ev) => { if (Global.connection.Connected) { server.Show(); connectionMonitor.Stop(); } else { server.Hide(); } }); connectionMonitor.Start(); }