Пример #1
0
        // UI handlers
        private void RoomButtonClick(object sender, EventArgs e)
        {
            var roomForm = new RoomListForm(engine);

            if (roomForm.ShowDialog(this) == DialogResult.Cancel)
            {
                return;
            }
            var room = roomForm.GetRoom();

            if (room == null)
            {
                return;
            }

            if (tabControl.TabPages.ContainsKey(room.Name))
            {
                tabControl.SelectTab(room.Name);
                return;
            }

            var password = "";

            if (!string.IsNullOrEmpty(room.Password))
            {
                password = engine.GetRoomPassword(room.Name);
                if (password == null)
                {
                    DialogResult result;
                    password = Dialogs.ShowInputDialog("Вход в комнату " + room.Name, "Введите пароль: ", true,
                                                       out result);
                    if (result == DialogResult.Cancel)
                    {
                        return;
                    }
                }
            }

            CreatePageForRoom(room.Name);

            engine.EnterRoom(room.Name, password);

            // если это первая вкладка, то SelectedIndexChanged почему-то не вызывается,
            // поэтому вызываем самостоятельно
            tabControl.SelectTab(room.Name);
            if (tabControl.TabPages.Count == 1)
            {
                TabControlSelectedIndexChanged(this, new EventArgs());
            }
        }