Desenvolvendo um projeto Loja em C#.Net - Parte 7


Este artigo é a sétima parte do projeto Loja em C#.Net, e agora iremos implementar o Formulário Produtos:
Abra o Visual Studio, e abra seu projeto UIWindows, clique com o botão direito, depois em Add, clique em Windows Form, conforme a figura a seguir:

Dê o nome de ProdutosForm.cs e clique em add, conforme a imagem a seguir:



No artigo anterior, trabalhamos com as propriedades mais comuns dos componentes, e agora não será necessário mostrar o painel propriedades nos exemplos, apenas irei descrever o que precisar ser alterado.

Clique no formulário e vá ao painel Propriedades, altere Size para 600; 300. Isso fará com que o formulário ganhe mais espaço horizontal para podermos incluir os componentes. 

Agora insira no formulário os componentes e mude suas propriedades conforme a tabela a seguir:
Componente Propriedade a ser alterada
label1Name: codigoLabel
Location: 21; 22
Text: Código:
label2Name: nomeLabel
Location: 110; 22
Text: Nome:
label3Name: precoLabel
Location: 322; 22
Text: Preço:
label4Name: estoqueLabel
Location: 417; 22
Text: Estoque:
textBox1Name: codigoTextBox
Enable: False
Location: 11; 38
ReadOnly: True
Size: 84; 20
textBox2Name: nomeTextBox
Location: 104; 38
Size: 204; 20
textBox3Name: precoTextBox
Location: 314; 38
Size: 84; 20
textBox4Name: estoqueTextBox
Location: 404; 38
Size: 84; 20
textBox5Name: txtFiltro
Anchor: Bottom, Left
Location: 11; 74
Size: 231; 20
Button1Name: limparButton
Location: 332; 72
Text: Limpar
Button2Name: incluirButton
Location: 494; 36
Text: Incluir
Button3Name: alterarButton
Location: 413; 72
Text: Alterar
Button4Name: excluirButton
Location: 494; 72
Text: Excluir
Button5Anchor: Bottom, left
Name: btFiltro
Location: 251; 72
Text: Filtrar
dataGridView1Name: produtosDataGridView
Anchor: Top, Bottom, Left, Right
Location: 15; 101
Size: 554; 148

Depois de adicionar os componentes e alterar suas propriedades o seu formulário ficará como a figura a seguir:

Muito bem! O formulário está pronto para ser implementado, e vamos começar clicando com o botão direito no formulário e escolhendo View Code para exibir o código do formulário. Altere o namespace para Loja.UIWindows e adicione as clausulas using Loja.Model, using Loja.DAL e using Loja.BLL. Conforme a figura a seguir:

Adicione o método AtualizaGrid conforme o código a seguir:

 public void AtualizaGrid()  
     {  
       //Comunicação com a camada BLL  
       ProdutosBLL obj = new ProdutosBLL();  
       produtosDataGridView.DataSource = obj.listagem("");  
       //Atualizando os objetos TextBox  
       codigoTextBox.Text = produtosDataGridView[0, produtosDataGridView.CurrentRow.Index].Value.ToString();  
       nomeTextBox.Text = produtosDataGridView[1, produtosDataGridView.CurrentRow.Index].Value.ToString();  
       precoTextBox.Text = produtosDataGridView[2, produtosDataGridView.CurrentRow.Index].Value.ToString();  
       estoqueTextBox.Text = produtosDataGridView[3, produtosDataGridView.CurrentRow.Index].Value.ToString();  
     }  

Clique com o botão direito e clique em View Designer para voltar ao modo design e agora clique duas vezes em alguma parte do formulário para adicionar o método Load. Copie o código a seguir:

 private void ProdutosForm_Load(object sender, EventArgs e)  
     {  
       AtualizaGrid();  
       nomeTextBox.Focus();  
     }  

Volte ao modo Design. Clique duas vezes no botão Limpar. Isso adicionará o método click ao botão, copie o código a seguir:

 private void limparButton_Click(object sender, EventArgs e)  
     {  
       codigoTextBox.Text = "";  
       nomeTextBox.Text = "";  
       precoTextBox.Text = "";  
       estoqueTextBox.Text = "";  
     }  

Volte ao modo Design. Clique duas vezes no botão incluir, copie o código a seguir:

 private void incluirButton_Click(object sender, EventArgs e)  
 {  
       try  
       {  
         ProdutoInformation produto = new ProdutoInformation();  
         produto.Nome = nomeTextBox.Text;  
         produto.Preco = Convert.ToDecimal(precoTextBox.Text);  
         produto.Estoque = Convert.ToInt32(estoqueTextBox.Text);  
         ProdutosBLL obj = new ProdutosBLL();  
         obj.incluir(produto);  
         MessageBox.Show("O produto foi incluído com sucesso!");  
         codigoTextBox.Text = Convert.ToString(produto.Codigo);  
       }  
       catch (Exception ex)  
       {  
         MessageBox.Show("Erro: " + ex.Message);  
       }  
       AtualizaGrid();  
 }  

Volte ao modo Design. Clique duas vezes no botão Alterar, copie o código a seguir:

 private void alterarButton_Click(object sender, EventArgs e)  
     {  
       if (codigoTextBox.Text == " ")  
       {  
         MessageBox.Show("Um produto precisa ser selecionado para alteração.");  
       }  
       else  
       {  
         try  
         {  
           ProdutoInformation produto = new ProdutoInformation();  
           produto.Codigo = int.Parse(codigoTextBox.Text);  
           produto.Nome = nomeTextBox.Text;  
           produto.Preco = Convert.ToDecimal(precoTextBox.Text);  
           produto.Estoque = Convert.ToInt32(estoqueTextBox.Text);  
           ProdutosBLL obj = new ProdutosBLL();  
           obj.alterar(produto);  
           MessageBox.Show("O produto foi atualizado com sucesso");  
         }  
         catch (Exception ex)  
         {  
           MessageBox.Show("Erro: " + ex.Message);  
         }  
         AtualizaGrid();  
       }  
     }  

Volte ao modo Design. Clique duas vezes no botão excluir, copie o código a seguir:

 private void excluirButton_Click(object sender, EventArgs e)  
     {  
       if (codigoTextBox.Text.Length == 0)  
       {  
         MessageBox.Show("Um produto deve ser selecionado antes da exclusão.");  
       }  
       else  
       {  
         try  
         {  
           int codigo = Convert.ToInt32(codigoTextBox.Text);  
           ProdutosBLL obj = new ProdutosBLL();  
           obj.excluir(codigo);  
           MessageBox.Show("O produto foi excluído com sucesso!");  
           AtualizaGrid();  
         }  
         catch (Exception ex)  
         {  
           MessageBox.Show(ex.Message);  
         }  
       }  
     }  

Volte ao Modo Design, clique duas vezes no botão filtro, copie o código a seguir:

 private void btFiltro_Click(object sender, EventArgs e)  
     {  
       //Comunicação com a camada bll  
       ProdutosBLL obj = new ProdutosBLL();  
       produtosDataGridView.DataSource = obj.listagem(txtFiltro.Text);  
       //Atualizando os objetos TextBox  
       try  
       {  
         codigoTextBox.Text = produtosDataGridView[0, produtosDataGridView.CurrentRow.Index].Value.ToString();  
         nomeTextBox.Text = produtosDataGridView[1, produtosDataGridView.CurrentRow.Index].Value.ToString();  
         precoTextBox.Text = produtosDataGridView[2, produtosDataGridView.CurrentRow.Index].Value.ToString();  
         estoqueTextBox.Text = produtosDataGridView[3, produtosDataGridView.CurrentRow.Index].Value.ToString();  
       }  
       catch  
       {  
         codigoTextBox.Text = "";  
         nomeTextBox.Text = "";  
         precoTextBox.Text = "";  
         estoqueTextBox.Text = "";  
       }  
     }  

Volte ao Modo Design. Clique no produtosDataGridView vá ao painel Propriedades, clique no botão Events (ele tem um ícone de relâmpago), assim você verá a lista de eventos que o grid possuí. Clique duas vezes no evento CellClick. Copie o código a seguir:

 private void produtosDataGridView_CellClick(object sender, DataGridViewCellEventArgs e)  
     {  
       //Atualizando os objetos TextBox  
       codigoTextBox.Text = produtosDataGridView[0, produtosDataGridView.CurrentRow.Index].Value.ToString();  
       nomeTextBox.Text = produtosDataGridView[1, produtosDataGridView.CurrentRow.Index].Value.ToString();  
       precoTextBox.Text = produtosDataGridView[2, produtosDataGridView.CurrentRow.Index].Value.ToString();  
       estoqueTextBox.Text = produtosDataGridView[3, produtosDataGridView.CurrentRow.Index].Value.ToString();  
     }  

Agora o formulário está terminado, no próximo artigo iremos criar o formulário Vendas. Até mais

Tiago Sousa

Sou Desenvolvedor Web Full-Stack com ênfase em Java, atuando no mercado de TI há 15 anos. Ao longo da carreira, adquiri conhecimentos sólidos e abrangentes em diversas tecnologias.