//Rotina de inicialização de Função
        private void InicializaCampos(string modo)
        {
            int int_GuardaLinhaSelecionada;
            ItemDaComposicaoDTO obj_ItemDaComposicaoDTO;

            switch (modo)
            {
            case "Incluir":
                CarregaInformacoesDoGrupoNoCombo();
                LimpaCampos();
                txt_CodigoDoProduto.Enabled = true;
                HabilitarCampos(true);
                msk_DataHoraDeCadastroDoInsumo.Text = DateTime.Now.ToString();
                grd_Produto.Enabled           = false;
                btn_ExcluirRegistro.Enabled   = false;
                btn_PesquisarRegistro.Enabled = false;
                txt_PesquisaProduto.Visible   = false;
                flt_TotalDoProduto            = 0;

                if (cmb_GrupoDoProduto.Items.Count > 0)
                {
                    cmb_GrupoDoProduto.SelectedIndex = 0;
                }

                txt_CodigoDoProduto.Focus();
                LimpaErrosEncontrados();
                break;

            case "SalvarNovo":

                obj_ProdutoDTO = new ProdutoDTO();

                try
                {
                    //Carrega o objeto com os campos digitados
                    obj_ProdutoDTO.CodigoDoProduto             = Convert.ToInt32(txt_CodigoDoProduto.Text);
                    obj_ProdutoDTO.DescricaoDoProduto          = txt_DescricaoDoProduto.Text;
                    obj_ProdutoDTO.DataHoraDeCadastroDoProduto = Convert.ToDateTime(msk_DataHoraDeCadastroDoInsumo.Text);
                    obj_ProdutoDTO.LarguraDoProduto            = Convert.ToSingle(txt_LarguraDoProduto.Text);
                    obj_ProdutoDTO.ComprimentoDoProduto        = Convert.ToSingle(txt_ComprimentoDoProduto.Text);
                    obj_ProdutoDTO.EspessuraDoProduto          = Convert.ToSingle(txt_EspessuraDoProduto.Text);
                    obj_ProdutoDTO.PesoTotalDoProduto          = Convert.ToSingle(txt_PesoDoProduto.Text);
                    obj_ProdutoDTO.GrupoDoProduto = obj_GrupoModel.BuscaGrupoPorCodigo(Convert.ToInt32(cmb_GrupoDoProduto.Text.Substring(0, 3)));

                    //Insere os itens na lista do produto
                    if (grd_ComposicaoDoProduto.RowCount > 1)
                    {
                        foreach (DataGridViewRow row_ItemDaComposicaoDoProduto in grd_ComposicaoDoProduto.Rows)
                        {
                            if (row_ItemDaComposicaoDoProduto.Cells[0].Value != null)
                            {
                                obj_ItemDaComposicaoDTO = new ItemDaComposicaoDTO();
                                obj_ItemDaComposicaoDTO.Insumo.CodigoDoInsumo = Convert.ToInt32(row_ItemDaComposicaoDoProduto.Cells[0].Value);
                                obj_ItemDaComposicaoDTO.QuantidadeDoItem      = Convert.ToSingle(row_ItemDaComposicaoDoProduto.Cells[3].Value);
                                obj_ItemDaComposicaoDTO.TotalDoItem           = Convert.ToSingle(row_ItemDaComposicaoDoProduto.Cells[5].Value);

                                obj_ProdutoDTO.InsereItemDaComposicao(obj_ItemDaComposicaoDTO);
                            }
                        }
                    }

                    //Insere as informações no Banco
                    retornoDaFuncao = obj_ProdutoModel.IncluirNovoProduto(obj_ProdutoDTO);

                    if (retornoDaFuncao > 0)
                    {
                        MessageBox.Show("Produto cadastrado com sucesso!", "Produto Cadastrado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("O Produto não foi cadastrado!");
                    }

                    grd_Produto.Enabled = true;

                    //Recarrega a Tabela de Usuários e seleciona o registro criado
                    bol_HabilitaValidacaoPorTeclado = false;
                    CarregaProdutosNoGrid();
                    grd_Produto.Rows[grd_Produto.Rows.Count - 1].Selected = true;
                    CarregaInformacoesDoProduto();
                    bol_HabilitaValidacaoPorTeclado = true;
                    HabilitaOuDesabilitaBotoesDeExclusaoEPesquisa();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Erro ao salvar", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                break;

            case "Salvar":

                obj_ProdutoDTO = new ProdutoDTO();

                try
                {
                    //Carrega o objeto com os campos digitados
                    obj_ProdutoDTO.CodigoDoProduto             = Convert.ToInt32(txt_CodigoDoProduto.Text);
                    obj_ProdutoDTO.DescricaoDoProduto          = txt_DescricaoDoProduto.Text;
                    obj_ProdutoDTO.DataHoraDeCadastroDoProduto = Convert.ToDateTime(msk_DataHoraDeCadastroDoInsumo.Text);
                    obj_ProdutoDTO.LarguraDoProduto            = Convert.ToSingle(txt_LarguraDoProduto.Text);
                    obj_ProdutoDTO.ComprimentoDoProduto        = Convert.ToSingle(txt_ComprimentoDoProduto.Text);
                    obj_ProdutoDTO.EspessuraDoProduto          = Convert.ToSingle(txt_EspessuraDoProduto.Text);
                    obj_ProdutoDTO.PesoTotalDoProduto          = Convert.ToSingle(txt_PesoDoProduto.Text);
                    obj_ProdutoDTO.GrupoDoProduto = obj_GrupoModel.BuscaGrupoPorCodigo(Convert.ToInt32(cmb_GrupoDoProduto.Text.Substring(0, 3)));

                    //Insere os itens na lista do produto
                    foreach (DataGridViewRow row_ItemDaComposicaoDoProduto in grd_ComposicaoDoProduto.Rows)
                    {
                        if (row_ItemDaComposicaoDoProduto.Cells[0].FormattedValue.ToString() != "")
                        {
                            obj_ItemDaComposicaoDTO = new ItemDaComposicaoDTO();
                            obj_ItemDaComposicaoDTO.Insumo.CodigoDoInsumo = Convert.ToInt32(row_ItemDaComposicaoDoProduto.Cells[0].Value);
                            obj_ItemDaComposicaoDTO.QuantidadeDoItem      = Convert.ToSingle(row_ItemDaComposicaoDoProduto.Cells[3].Value);
                            obj_ItemDaComposicaoDTO.TotalDoItem           = Convert.ToSingle(row_ItemDaComposicaoDoProduto.Cells[5].Value);

                            obj_ProdutoDTO.InsereItemDaComposicao(obj_ItemDaComposicaoDTO);
                        }
                    }

                    //Insere as informações no Banco
                    retornoDaFuncao = obj_ProdutoModel.AtualizaInformacoesDoProduto(obj_ProdutoDTO, Convert.ToInt32(grd_Produto.CurrentRow.Cells[0].FormattedValue));

                    if (retornoDaFuncao > 0)
                    {
                        MessageBox.Show("Informações salvas com sucesso!", "Usuário Cadastrado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("O Produto não foi salvo!");
                    }

                    //Recarrega a Tabela de Produto e seleciona o registro criado
                    bol_HabilitaValidacaoPorTeclado = false;
                    int_GuardaLinhaSelecionada      = grd_Produto.SelectedRows[0].Index;
                    CarregaProdutosNoGrid();
                    grd_Produto.Rows[int_GuardaLinhaSelecionada].Selected = true;
                    CarregaInformacoesDoProduto();
                    bol_HabilitaValidacaoPorTeclado = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Erro ao salvar", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                break;

            case "Cancelar":

                CarregaInformacoesDoGrupoNoCombo();
                if (grd_Produto.Rows.Count > 0)
                {
                    CarregaInformacoesDoProduto();
                    txt_DescricaoDoProduto.Focus();
                }
                else
                {
                    LimpaCampos();
                    HabilitarCampos(false);
                }

                txt_CodigoDoProduto.Enabled = false;
                grd_Produto.Enabled         = true;
                HabilitaOuDesabilitaBotoesDeExclusaoEPesquisa();
                LimpaErrosEncontrados();

                break;

            case "Excluir":

                obj_ProdutoDTO = new ProdutoDTO();

                try
                {
                    //Carrega o objeto com os campos digitados
                    obj_ProdutoDTO.CodigoDoProduto             = Convert.ToInt32(txt_CodigoDoProduto.Text);
                    obj_ProdutoDTO.DescricaoDoProduto          = txt_DescricaoDoProduto.Text;
                    obj_ProdutoDTO.DataHoraDeCadastroDoProduto = Convert.ToDateTime(msk_DataHoraDeCadastroDoInsumo.Text);
                    obj_ProdutoDTO.LarguraDoProduto            = Convert.ToSingle(txt_LarguraDoProduto.Text);
                    obj_ProdutoDTO.ComprimentoDoProduto        = Convert.ToSingle(txt_ComprimentoDoProduto.Text);
                    obj_ProdutoDTO.EspessuraDoProduto          = Convert.ToSingle(txt_EspessuraDoProduto.Text);
                    obj_ProdutoDTO.PesoTotalDoProduto          = Convert.ToSingle(txt_PesoDoProduto.Text);

                    //Insere os itens na lista do produto
                    foreach (DataGridViewRow row_ItemDaComposicaoDoProduto in grd_ComposicaoDoProduto.Rows)
                    {
                        obj_ItemDaComposicaoDTO = new ItemDaComposicaoDTO();
                        obj_ItemDaComposicaoDTO.Insumo.CodigoDoInsumo = Convert.ToInt32(row_ItemDaComposicaoDoProduto.Cells[0].Value);
                        obj_ItemDaComposicaoDTO.QuantidadeDoItem      = Convert.ToSingle(row_ItemDaComposicaoDoProduto.Cells[3].Value);
                        obj_ItemDaComposicaoDTO.TotalDoItem           = Convert.ToSingle(row_ItemDaComposicaoDoProduto.Cells[5].Value);

                        obj_ProdutoDTO.InsereItemDaComposicao(obj_ItemDaComposicaoDTO);
                    }

                    //Exclui o usuário
                    retornoDaFuncao = obj_ProdutoModel.ExcluiInformacoesDoProduto(obj_ProdutoDTO);

                    if (retornoDaFuncao > 0)
                    {
                        MessageBox.Show("Produto removido com sucesso!", "Produto Removido", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("O Produto não foi removido!", "Erro ao Remover Produto", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

                    grd_Produto.Enabled = true;

                    //Recarrega a Tabela de Usuários e seleciona o registro criado
                    bol_HabilitaValidacaoPorTeclado = false;
                    CarregaProdutosNoGrid();

                    if (grd_Produto.Rows.Count > 0)
                    {
                        CarregaInformacoesDoProduto();
                    }

                    bol_HabilitaValidacaoPorTeclado = true;
                    HabilitaOuDesabilitaBotoesDeExclusaoEPesquisa();
                    LimpaErrosEncontrados();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Erro ao excluir o usuário.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                break;

            case "Pesquisar":

                lst_ProdutosCadastrados.RowFilter = "DescricaoDoProduto Like '" + txt_PesquisaProduto.Text.Trim() + "%'";
                grd_Produto.Refresh();
                grd_Produto.Focus();

                break;
            }
        }