// EDITAR MENSAGEM
        //------------------------------------------------------------------------------------------------------------
        private void EditarMensagem()
        {
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Selecione um registro para editar...", "Selecionar");
                return;
            }

            //--- get selected message
            objMensagem mensagem = (objMensagem)dgvListagem.SelectedRows[0].DataBoundItem;

            //--- create destino user
            var user = new objUsuario(mensagem.IDUsuarioDestino)
            {
                UsuarioApelido = mensagem.UsuarioDestino
            };

            //--- open form mensagem
            var frmM = new frmMensagemEditar(mensagem, user, this);

            frmM.ShowDialog();

            if (frmM.DialogResult != DialogResult.OK)
            {
                return;
            }

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- update
                mBLL.UpdateMensagem(mensagem);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Salvar Mensagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
        // RESPONDER MENSAGEM SELECIONADA
        //------------------------------------------------------------------------------------------------------------
        private void ResponderMensagem()
        {
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Selecione uma mensagem para Responder...", "Selecionar");
                return;
            }

            //--- get selected message
            objMensagem mensagem = (objMensagem)dgvListagem.SelectedRows[0].DataBoundItem;

            //--- check if mensagem is RECEBIDA
            if (!mensagem.Recebida)
            {
                AbrirDialog("Para responder uma mensagem, a mesma deve estar marcada como mensagem LIDA..." +
                            "Favor marcar essa mensagem com LIDA.",
                            "Responder Mensagem", DialogType.OK, DialogIcon.Exclamation);
                return;
            }

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- Define Destination User message
                objUsuario userDestino = new objUsuario(mensagem.IDUsuarioOrigem)
                {
                    UsuarioApelido = mensagem.UsuarioOrigem
                };

                //--- create new mensagem
                var novaMensagem = new objMensagem()
                {
                    IDMensagem       = null,
                    IDUsuarioDestino = (int)userDestino.IDUsuario,
                    IDUsuarioOrigem  = (int)Program.usuarioAtual.IDUsuario,
                    IsResposta       = true,
                    IDOrigem         = mensagem.IDMensagem,
                    Mensagem         = "",
                    MensagemData     = DateTime.Today,
                    MensagemOrigem   = mensagem,
                    Recebida         = false,
                    RecebidaData     = null,
                    Suporte          = false,
                    UsuarioOrigem    = Program.usuarioAtual.UsuarioApelido,
                    UsuarioDestino   = userDestino.UsuarioApelido
                };

                //--- open form mensagem
                var frmM = new frmMensagemEditar(novaMensagem, userDestino, this);

                frmM.ShowDialog();

                if (frmM.DialogResult != DialogResult.OK)
                {
                    return;
                }

                EnviarMensagem(novaMensagem);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Enviar a Resposta da Mensagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
        // CREATE ENVIAR NOVA MENSAGEM
        //------------------------------------------------------------------------------------------------------------
        private void btnEnviarNova_Click(object sender, EventArgs e)
        {
            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- get destination user message
                var frm = new frmUsuarioProcura(this, null, true);
                frm.ShowDialog();

                if (frm.DialogResult != DialogResult.OK)
                {
                    return;
                }

                var user = frm.propEscolha;

                if (user.IDUsuario == (int)Program.usuarioAtual.IDUsuario)
                {
                    AbrirDialog("Não é possível enviar uma mensagem para o usuário atual:\n" +
                                $"{Program.usuarioAtual.UsuarioApelido}",
                                "Mensagem para Usuário", DialogType.OK, DialogIcon.Exclamation);
                    return;
                }

                //--- create new mensagem
                var novaMensagem = new objMensagem()
                {
                    IDUsuarioDestino = (int)user.IDUsuario,
                    IDUsuarioOrigem  = (int)Program.usuarioAtual.IDUsuario,
                    IsResposta       = false,
                    IDMensagem       = null,
                    IDOrigem         = null,
                    Mensagem         = "",
                    MensagemData     = DateTime.Today,
                    MensagemOrigem   = null,
                    Recebida         = false,
                    RecebidaData     = null,
                    Suporte          = false,
                    UsuarioOrigem    = Program.usuarioAtual.UsuarioApelido,
                    UsuarioDestino   = user.UsuarioApelido
                };

                //--- open form mensagem
                var frmM = new frmMensagemEditar(novaMensagem, user, this);

                frmM.ShowDialog();

                if (frmM.DialogResult != DialogResult.OK)
                {
                    return;
                }

                EnviarMensagem(novaMensagem);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Enviar Nova Mensagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }