private void btnCompromissoAdd_Click(object sender, EventArgs e)
        {
            // Exibe uma tela "Compromisso" vazia, para que o usuário registre um novo compromisso.
            this.Hide();

            Compromisso telaNewCompromisso = new Compromisso();

            telaNewCompromisso.Text = "Novo compromisso";   // Altera o título da tela para "Novo compromisso"
            // Esse título não deve ser modificado, por meio dele, o evento "Click" na área de contatos/convidados ocorre,
            // exibindo a informação sobre a impossibilidade de manipular convidados no momento.

            telaNewCompromisso.dataGridViewContatosCompromisso.DataSource = null; // Desabilita a exibição dos contatos.

            telaNewCompromisso.btnSalvarNewCompromisso.Visible = true;            // Ativa o botão de salvar para a base de dados.
            telaNewCompromisso.btnSalvarNewCompromisso.Enabled = true;

            telaNewCompromisso.ShowDialog();
            atualizarCompromisso();
            this.Show();
        }
        private void btnCompromissoDetalhes_Click(object sender, EventArgs e)
        {
            this.Hide();

            // Instânciamento das classes utilizadas.

            Compromisso     telaDetCompromisso = new Compromisso();
            DTO_Compromisso obj_dtoCompromisso = new DTO_Compromisso();
            BLL_Compromisso obj_bllCompromisso = new BLL_Compromisso();
            DataGridViewRow mySelectedRow      = dataGridViewCompromissos.CurrentRow;

            // Guarda os dados selecionados no DTO.

            CultureInfo myCulture       = new CultureInfo(CultureInfo.CurrentCulture.Name.ToString());
            DateTime    dataCompromisso = DateTime.Parse(mySelectedRow.Cells[2].Value.ToString(), myCulture); // Cells[2] = dataCompromisso (dd/mm/yyyy) - validation needed.

            //MessageBox.Show(dataCompromisso.ToString("yyyy-MM-dd"));

            obj_dtoCompromisso.codCompromisso  = int.Parse(mySelectedRow.Cells[0].Value.ToString());  // Cells[0] = codCompromisso.
            obj_dtoCompromisso.assunto         = mySelectedRow.Cells[1].Value.ToString();             // Cells[1] = assunto.
            obj_dtoCompromisso.dataCompromisso = dataCompromisso.ToString("yyyy-MM-dd");              // Data validada.
            obj_dtoCompromisso.horario         = mySelectedRow.Cells[3].Value.ToString();             // Cells[3] = horario (hh:mm:ss).
            obj_dtoCompromisso.descricao       = mySelectedRow.Cells[4].Value.ToString();             // Cells[4] = descricao.
            obj_dtoCompromisso.estaAtivo       = bool.Parse(mySelectedRow.Cells[5].Value.ToString()); // Cells[5] = estaAtivo default 1 (true).

            // Define a exibição dos dados na UI Compromisso.

            telaDetCompromisso.Text = "Assunto do Compromisso: " + obj_dtoCompromisso.assunto;
            telaDetCompromisso.txbAssuntoCompromisso.Text   = obj_dtoCompromisso.assunto;
            telaDetCompromisso.txbDescricaoCompromisso.Text = obj_dtoCompromisso.descricao;
            telaDetCompromisso.monthCalendarCompromisso.SetDate(dataCompromisso);
            telaDetCompromisso.mtxbHorarioCompromisso.Text = obj_dtoCompromisso.horario;
            telaDetCompromisso.chkBoxAtivo.Checked         = obj_dtoCompromisso.estaAtivo;
            telaDetCompromisso.lblHiddenCod.Text           = obj_dtoCompromisso.codCompromisso.ToString();

            // Verifica se existem convidados nesse compromisso e atualiza a GridView da tela Compromisso de acordo...
            obj_dtoCompromisso.Convidados = BLL_Compromisso.verificarListaCompromisso(obj_dtoCompromisso);  // Deve retornar uma lista de convidados.

            List <DTO_Convidado> myConvidados = obj_dtoCompromisso.Convidados;                              // Atribui a lista de convidados do nosso obj_dtoCompromisso a uma variável.

            telaDetCompromisso.dataGridViewConvidadosCompromisso.DataSource = myConvidados;                 // Passa a lista para a DataTable da dataGridView.

            telaDetCompromisso.dataGridViewConvidadosCompromisso.Columns["codCompromisso"].Visible = false; // Oculta um campo indesejado.


            // Desabilita inicialmente a edição dos detalhes.

            //telaDetCompromisso.btnConvidarContato.Enabled = false;
            //telaDetCompromisso.btnRmvConvidado.Enabled = false;
            telaDetCompromisso.txbAssuntoCompromisso.ReadOnly   = true;
            telaDetCompromisso.txbDescricaoCompromisso.ReadOnly = true;
            telaDetCompromisso.monthCalendarCompromisso.Enabled = false;
            telaDetCompromisso.mtxbHorarioCompromisso.ReadOnly  = true;
            telaDetCompromisso.chkBoxAtivo.AutoCheck            = false;
            telaDetCompromisso.btnEditarCompromisso.Enabled     = true;
            telaDetCompromisso.btnEditarCompromisso.Visible     = true;

            // Exibe a tela com os detalhes.

            telaDetCompromisso.ShowDialog();
            atualizarCompromisso();
            this.Show();
        }