private void BtnAplicar_Click(object sender, EventArgs e)
 {
     try
     {
         if ((int?)cboPerfil.SelectedValue > 0)
         {
             bool Exclusao = new GRUPO_ACESSO_BLL().Excluir((int)cboPerfil.SelectedValue);
             if (Exclusao)
             {
                 int ID_PERFIL = (int)cboPerfil.SelectedValue;
                 foreach (TreeNode itens in trwTelasSelecionadas.Nodes[0].Nodes)
                 {
                     if (lista_telas.Exists(x => x.ID == Convert.ToInt32(itens.Tag)))
                     {
                         SYS_MENU_DTO     tela = lista_telas.First(x => x.ID == Convert.ToInt32(itens.Tag));
                         GRUPO_ACESSO_DTO DTO  = new GRUPO_ACESSO_DTO();
                         DTO.ID_PERFIL   = ID_PERFIL;
                         DTO.ID_SYS_MENU = tela.ID;
                         new GRUPO_ACESSO_BLL().Inserir(DTO);
                     }
                 }
             }
             cboPerfil.SelectedIndex = -1;
             tssMSG.Text             = "Permissões alteradas";
             tssMSG.Visible          = true;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Erro do sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private void CboPerfil_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                tssMSG.Text    = "";
                tssMSG.Visible = false;

                PopularTreeView();
                if (cboPerfil.SelectedValue != null)
                {
                    trwTelasDisponiveis.Enabled = true;

                    GRUPO_ACESSO_DTO lista_acesso = new GRUPO_ACESSO_BLL().Listar((int)cboPerfil.SelectedValue);
                    if (lista_acesso.SYS_MENU.Count > 0)
                    {
                        TreeNode node = trwTelasSelecionadas.Nodes[0];

                        foreach (SYS_MENU_DTO menu in lista_acesso.SYS_MENU)
                        {
                            TreeNode node_Filho = new TreeNode();
                            node_Filho.Text = menu.DESCRICAO;
                            node_Filho.Tag  = menu.ID;
                            TreeNodeCollection lista_nodes = trwTelasDisponiveis.Nodes[0].Nodes;
                            foreach (TreeNode nodes in lista_nodes)
                            {
                                trwTelasDisponiveis.AfterSelect -= TrwTelasDisponiveis_AfterSelect;
                                try
                                {
                                    if (nodes.Tag.ToString() == menu.ID.ToString())
                                    {
                                        trwTelasDisponiveis.Nodes[0].Nodes.Remove(nodes);
                                    }
                                }
                                catch
                                {
                                }
                                trwTelasDisponiveis.AfterSelect += TrwTelasDisponiveis_AfterSelect;
                            }
                            node.Nodes.Add(node_Filho);
                        }
                        trwTelasSelecionadas.Nodes[0].Expand();
                    }
                }
                else
                {
                    trwTelasDisponiveis.Enabled = false;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro do sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }