private void adicionarOuroToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Cadastro c = new CadastroOuro();
            AbrirJanelaCadastro(c);

            while (c.DialogResult != DialogResult.Cancel)
            {
                c = new CadastroOuro();
                AbrirJanelaCadastro(c);
            }
        }
        private void lista_DoubleClick(object sender, EventArgs e)
        {
            Cadastro janela;
            Entidades.Pagamentos.Pagamento pagamento;

            if (lista.SelectedItems.Count != 0)
            {
                UseWaitCursor = true;

                pagamento = hashItemListaPagamento[lista.SelectedItems[0]].Pagamento;

                if (pagamento is Cheque)
                    janela = new CadastroCheque();
                else if (pagamento is Dinheiro)
                    janela = new CadastroDinheiro();
                else if (pagamento is NotaPromissória)
                    janela = new CadastroNotaPromissória();
                else if (pagamento is Ouro)
                    janela = new CadastroOuro();
                else if (pagamento is Dolar)
                    janela = new CadastroDolar();
                else
                    throw new NotSupportedException("Tipo de pagamento não suportado na lista de pagamento.");

                janela.PagamentoAlteradoOuRegistrado += new EventHandler(janela_PagamentoAlteradoOuRegistrado);
                janela.Disposed += new EventHandler(janela_Disposed);
                
                /* É necessário clonar o pagamento, de forma que se o usuário fizer alguma
                 * modificação e depois cancelar, não é pertubado nas entidades da lista. 
                 */
                janela.PrepararParaAlteração((Entidades.Pagamentos.Pagamento) pagamento.Clone());
                janela.ShowDialog(ParentForm);
                
                UseWaitCursor = false;
            }
        }