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(); }
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; } }