private void btnSalvar_Click(object sender, EventArgs e) { if (osTiposLivro.SituacaoAtual == Situacao.incluindo) // Verifica se está no modo de inclusão { var novoLivro = new TipoLivro(txtCodigoLivro.Text, txtDescricao.Text); osTiposLivro.Incluir(novoLivro); // Inclusão da nova palavra digitada pelo usuário osTiposLivro.PosicaoAtual = ondeAchar; // Atualizar a posição onde está a linha atual(dica e palavra) AtualizarTela(); // Atualização constante do formulário osTiposLivro.SituacaoAtual = Situacao.navegando; // Encerra o modo de inclusão } }
private void txtCodigoLivro_Leave(object sender, EventArgs e) { if (txtCodigoLivro.Text == "") // Caso algo não fosse digitado pelo usuário, um alerta seria disparado { MessageBox.Show("Por favor, digite um código"); } else { var codigoTipoLivroProc = new TipoLivro(txtCodigoLivro.Text, ""); switch (osTiposLivro.SituacaoAtual) // Escolhas possíveis ao usuário { case Situacao.incluindo: // Modo de inclusão if (osTiposLivro.Existe(codigoTipoLivroProc, ref ondeAchar)) // Verifica se a palavra já existe no vetor { MessageBox.Show("Código repetido, por favor insira outra código."); osTiposLivro.SituacaoAtual = Situacao.navegando; // Está no modo de navegação AtualizarTela(); // Atualização constante do formulário } else { txtDescricao.Focus(); stlbMensagem.Text = "Digite os demais dados. Após isso pressione [Salvar]"; } break; case Situacao.pesquisando: int ondeAchou = 0; if (!osTiposLivro.Existe(codigoTipoLivroProc, ref ondeAchou)) { MessageBox.Show("Código não foi cadastrado ainda."); AtualizarTela(); osTiposLivro.SituacaoAtual = Situacao.navegando; // Modo de navegação } else // encontrou o código procurado na posição ondeAchou { osTiposLivro.PosicaoAtual = ondeAchou; AtualizarTela(); osTiposLivro.SituacaoAtual = Situacao.navegando; // Modo de navegação } break; } } }
private void AtualizarTela() // Atualização constante do formulário { if (!osTiposLivro.EstaVazio) // Verifica se há dados no vetor { TipoLivro oTipoLivro = osTiposLivro[osTiposLivro.PosicaoAtual]; TestarBotoes(); // Habilitação dos botões txtCodigoLivro.Text = oTipoLivro.CodigoTipoLivro; txtDescricao.Text = oTipoLivro.DescricaoTipoLivro; dgvTipoLivro.RowCount = osTiposLivro.Tamanho; // Criação de um "DataGridView" com tamanho adequado ao arquivo texto for (int indice = 0; indice < osTiposLivro.Tamanho; indice++) // Percorre vetor para a escrita dos dados do mesmo { dgvTipoLivro.Rows[indice].Cells[0].Value = osTiposLivro[indice].CodigoTipoLivro; dgvTipoLivro.Rows[indice].Cells[1].Value = osTiposLivro[indice].DescricaoTipoLivro; } stlbMensagem.Text = // Constante atualização da posição do registro do arquivo texto "Registro " + (osTiposLivro.PosicaoAtual + 1) + "/" + osTiposLivro.Tamanho; } }