Beispiel #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            //Evento de carga del formulario.
            nombreJugadorLb.Text = this.usuario;

            //Pedimos al servidor que nos envie exclusivamente a nosotros la lista de conectados actualizada
            server.Enviar("3/");
            ConectadosGrid.ClearSelection();
        }
Beispiel #2
0
        public void Accion3(string mensaje)
        {
            //Esta función es llamada cada vez que el thread de atención al servidor recibe un mensaje con el código 3,
            //que significa que la lista de usuarios conectados al servidor se ha actualizado.
            //Por tanto, esta función se encarga de actualizar la lista de conectados del DataGridView del formulario del cliente.

            //Primero de todo, vaciamos la tabla para que no salgan datos anteriores
            ConectadosGrid.ClearSelection();
            for (int j = 0; j < ConectadosGrid.RowCount; j++)
            {
                ConectadosGrid[0, j].Value = "";
            }
            string[] separado = mensaje.Split('/');
            if (separado.Length > 1)
            {
                //Configuración de parámetros de la tabla: Una columna, tantas filas como conectados menos 1 (el propio usuario),
                //sin cabeceras y sin casillas preseleccionadas.
                ConectadosGrid.ColumnCount          = 1;
                ConectadosGrid.RowCount             = separado.Length - 1;
                ConectadosGrid.ColumnHeadersVisible = false;
                ConectadosGrid.RowHeadersVisible    = false;
                ConectadosGrid.AutoSizeColumnsMode  = DataGridViewAutoSizeColumnsMode.Fill;
                ConectadosGrid.AutoSizeRowsMode     = DataGridViewAutoSizeRowsMode.AllCells;
                ConectadosGrid.ClearSelection();

                //Introducimos el nombre de los usuarios conectados en la DataGridView sin incluir al propio usuario
                int  j          = 0;
                bool encontrado = false;
                while (j < separado.Length && !encontrado)
                {
                    if (separado[j] != this.usuario)
                    {
                        ConectadosGrid[0, j].Value = separado[j];
                    }
                    else
                    {
                        encontrado = true;
                    }
                    j++;
                }
                while (j < separado.Length)
                {
                    ConectadosGrid[0, j - 1].Value = separado[j];
                    j++;
                }

                //Configura la alineación de las columnas al centro
                this.ConectadosGrid.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            }
        }
        private void ListaConectados(string mensaje)
        {
            string[] trozos = mensaje.Split('/');
            int      numero = Convert.ToInt32(trozos[1]);

            if (numero != 0)
            {
                ConectadosGrid.ColumnCount = 1;
                ConectadosGrid.RowCount    = numero;
                for (int i = 2; i < trozos.Length; i++)
                {
                    mensaje = trozos[i].Split('\0')[0];
                    ConectadosGrid.Rows[i - 2].Cells[0].Value = mensaje;
                }
            }
            ConectadosGrid.ClearSelection();
        }
        private void ConectadosGrid_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int     fila       = e.RowIndex;
            Boolean encontrado = false;

            if (ConectadosGrid.CurrentCell.Value.ToString() != usuario)
            {
                if (invitados.Count() == 0)
                {
                    ConectadosGrid.Rows[fila].DefaultCellStyle.BackColor = Color.Green;
                    invitados.Add(ConectadosGrid.CurrentCell.Value.ToString());
                    numSeleccionados++;
                }
                else
                {
                    for (int i = 0; i < invitados.Count(); i++)
                    {
                        if (invitados[i] == ConectadosGrid.CurrentCell.Value.ToString())
                        {
                            encontrado = true;
                        }
                        if (!encontrado)
                        {
                            ConectadosGrid.Rows[fila].DefaultCellStyle.BackColor = Color.Green;
                            invitados.Add(ConectadosGrid.CurrentCell.Value.ToString());
                            numSeleccionados++;
                        } //else {
                          //    ConectadosGrid.Rows[fila].DefaultCellStyle.BackColor = Color.White;
                          //    invitados.Remove(ConectadosGrid.CurrentCell.Value.ToString());
                          //    numSeleccionados--;
                          //    MessageBox.Show("Se ha eliminado a " + ConectadosGrid.CurrentCell.Value.ToString() + " de la lista de invitados");
                          //}
                    }
                }
            }
            else
            {
                MessageBox.Show("Eres el anfitrión, no te puedes invitar");
            }
            ConectadosGrid.ClearSelection();
        }
 private void Invitar_Click(object sender, EventArgs e)
 {
     try
     {
         //Invitar
         string mensaje = "9/";
         if (numSeleccionados >= 1)
         {
             for (int i = 0; i < numSeleccionados; i++)
             {
                 mensaje = mensaje + invitados[i] + ",";
             }
             mensaje = mensaje.Remove(mensaje.Length - 1);
             // Enviamos al servidor la consulta
             byte[] msg = System.Text.Encoding.ASCII.GetBytes(mensaje);
             server.Send(msg);
             //Limpiamos selección
             ConectadosGrid.ClearSelection();
             int tmp = ConectadosGrid.RowCount;
             for (int i = 0; i < tmp; i++)
             {
                 ConectadosGrid.Rows[i].DefaultCellStyle.BackColor = Color.White; //No va
             }
             invitados.Clear();
             numSeleccionados = 0;
         }
         else
         {
             MessageBox.Show("No se ha seleccionado ningún jugador");
         }
     }
     catch (Exception)
     {
         //Si hay excepcion imprimimos error y salimos del programa con return
         MessageBox.Show("Error en las invitaciones");
         return;
     }
 }