private void btnOpen_Click(object sender, EventArgs e) // Clique do botão de abrir arquivo { dgvCaminho.Enabled = false; // Desabilita o dgv de caminho, que se encontra vazio dgvCaminho.RowCount = 0; // Limpamos os dgvs dgvCaminho.ColumnCount = 1; dgvLabirinto.RowCount = 0; dgvCaminho.Columns[0].HeaderText = "Saídas"; if (dlgOpen.ShowDialog() == DialogResult.OK) // Aqui verifica-se se o usuário selecionou um arquivo { btnBuscar.Enabled = true; // Se tiver selecionado, habilita o botão de busca labirinto = new Labirinto(dlgOpen.FileName); // Bem como instancia o objeto da classe Labirinto labirinto.Exibir(dgvLabirinto); // E exibe a matriz confeccionada } }
private void button1_Click(object sender, EventArgs e) { label4.Text = "Caminhos encontrados:"; if (dlgAbrirArquivo.ShowDialog() == DialogResult.OK) { button2.Enabled = true; string nomeArq = dlgAbrirArquivo.FileName; dgvRun.Rows.Clear(); dgvRun.Refresh(); for (int i = 0; i < dgvLab.Columns.Count; i++) { try { dgvLab.Columns.Clear(); dgvLab.Columns.RemoveAt(i); } catch (Exception) { } } LeitorDeArquivo leitor = new LeitorDeArquivo(); try { labirinto = new Labirinto(leitor.ReadFileAsCharTable(nomeArq)); for (int i = 0; i < labirinto.Matriz.GetLength(1); i++) { dgvLab.Columns.Add("Column" + i, ""); dgvLab.Columns[i].Width = 20; } for (int i = 0; i < labirinto.Matriz.GetLength(0); i++) { dgvLab.Rows.Add(); for (int j = 0; j < labirinto.Matriz.GetLength(1); j++) { if (labirinto.Matriz[i, j].Equals('#')) { Color c = new Color(); c = Color.FromArgb(50, 50, 50); dgvLab.Rows[i].Cells[j].Style.BackColor = c; } else if (labirinto.Matriz[i, j].Equals('I')) { Color c = new Color(); c = Color.FromArgb(204, 25, 34); dgvLab.Rows[i].Cells[j].Style.BackColor = c; } else if (labirinto.Matriz[i, j].Equals('S')) { Color c = new Color(); c = Color.FromArgb(17, 197, 74); dgvLab.Rows[i].Cells[j].Style.BackColor = c; } else { Color c = new Color(); c = Color.FromArgb(220, 220, 220); dgvLab.Rows[i].Cells[j].Style.BackColor = c; } } } } catch (FileNotFoundException) { MessageBox.Show("Escolha um arquivo, por favor.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (ArgumentOutOfRangeException) { MessageBox.Show("O arquivo não é de texto (.txt)!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception) { MessageBox.Show("Ops! Algum erro inesperado aconteceu. Tente novamente mais tarde.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }