private void GerenciarPermissoesEmFormulario_Load(object sender, EventArgs e)
        {
            dgvControles.AutoGenerateColumns = false;

            formularioDoBD = DAOFormularioMySQL.ListarWhereUniqueResult(new List<string> {"nome"},
                new List<string> {formulario.Name});

            if (formularioDoBD == null)
            {
                var result = MessageBox.Show(
                    "Este formulário não está cadastrado no sistema. Deseja fazer isso agora?", "AVISO",
                    MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

                if (result == DialogResult.OK)
                {
                    formularioDoBD = DAOFormularioMySQL.Salvar(new Formulario { nome = formulario.Name, data_mod = DateTime.Now });

                    if (formularioDoBD != null)
                    {
                        DAOFormularioSQLServer.Salvar(new Formulario { nome = formulario.Name, data_mod = DateTime.Now });

                        var lista = new List<object>();

                        ListaControles(formulario.Controls, lista, formularioDoBD);

                        if (DAOControlMySQL.SalvarColecao(lista))
                        {
                            DAOControlSQLServer.SalvarColecao(lista);

                            MessageBox.Show("Controles salvos com sucesso.");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Erro ao salvar formulário.");
                    }
                }
                else
                {
                    Close();
                }
            }

            try
            {
                txtNomeForm.Text = formularioDoBD.nome;

                dgvControles.DataSource = DAOControlMySQL.ListarWhere("formulario", formularioDoBD);
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Erro ao recuperar formulário em banco de dados do sistema.");
            }
        }
        private void ListaControles(Control.ControlCollection colecao, List<object> lista, Formulario formBd)
        {
            DateTime dataAtual = DateTime.Now;
            Permissoes permissaoDefault = new Permissoes { idpermissoes = 1 };

            foreach (Control ctr in colecao)
            {
                var c = new ControlTable
                {
                    formulario = formBd,
                    nome = ctr.Name,
                    data_mod = dataAtual,
                    permissoes = permissaoDefault
                };

                if (ctr.GetType() == typeof(ToolStrip))
                {
                    foreach (ToolStripItem item in ((ToolStrip) ctr).Items)
                    {
                        var c2 = new ControlTable
                        {
                            formulario = formBd,
                            nome = item.Name,
                            data_mod = dataAtual,
                            permissoes = permissaoDefault
                        };

                        lista.Add(c2);
                    }
                }
                else
                {
                    foreach (Control item in ctr.Controls)
                    {
                        var c2 = new ControlTable
                        {
                            formulario = formBd,
                            nome = item.Name,
                            data_mod = dataAtual,
                            permissoes = permissaoDefault
                        };

                        lista.Add(c2);
                    }
                }

                lista.Add(c);
            }
        }