private void Arquivo_Exited(object sender, System.EventArgs e)
        {
            csArquivoAberto RemoverArquivoAberto = null;

            foreach (csArquivoAberto ArquivoAberto in ProcessosAbertos)
            {
                if (ArquivoAberto.Processo.Equals(sender))
                {
                    bool AindaEstaNaLista = false;
                    RemoverArquivoAberto = ArquivoAberto;
                    foreach (csItemArquivo ItemArquivo in _ItemListaArquivos.ItensArquivo)
                    {
                        if (ItemArquivo.Equals(ArquivoAberto.ItemArquivo))
                        {
                            AindaEstaNaLista = true;
                        }
                    }
                    if (AindaEstaNaLista)
                    {
                        DateTime DataHoraAlteracao = File.GetLastWriteTime(ArquivoAberto.NomeArquivo);
                        if (DataHoraAlteracao != ArquivoAberto.DataHora)
                        {
                            DialogResult Resp;
                            Resp = MessageBox.Show("O Arquivo " + csUtil.ParteNomeArquivo(ArquivoAberto.NomeArquivo, csUtil.enuParteNomeArquivo.NomeExtencao) + " foi alterado. Deseja salvar a alteração no Check List?\n", "Atualizar arquivo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            if (Resp == DialogResult.Yes)
                            {
                                ArquivoAberto.ItemArquivo.CarregarArquivo(ArquivoAberto.NomeArquivo);
                                this.Atualizar();
                                this.OnAlterouAlgo(new EventArgs());
                            }
                        }
                    }
                }
            }

            if (RemoverArquivoAberto != null)
            {
                ProcessosAbertos.Remove(RemoverArquivoAberto);
                GC.Collect();
            }

            //try
            //{
            //    File.Delete(RemoverArquivoAberto.NomeArquivo);
            //}
            //catch (Exception)
            //{

            //}
        }
 private void lvwItemListaArquivos_DoubleClick(object sender, EventArgs e)
 {
     if (lvwItemListaArquivos.SelectedItems.Count > 0)
     {
         csItemArquivo   ItemArquivo   = (csItemArquivo)_ItemListaArquivos.ItensArquivo[lvwItemListaArquivos.SelectedIndices[0]];
         csArquivoAberto ArquivoAberto = new csArquivoAberto();
         ArquivoAberto.ItemArquivo = ItemArquivo;
         ArquivoAberto.NomeArquivo = Path.GetTempPath() + ItemArquivo.NomeArquivo;
         ItemArquivo.SalvarArquivo(ArquivoAberto.NomeArquivo);
         ArquivoAberto.DataHora = File.GetLastWriteTime(ArquivoAberto.NomeArquivo);
         Process Processo = new Process();
         Processo.StartInfo.FileName  = ArquivoAberto.NomeArquivo;
         Processo.EnableRaisingEvents = true;
         Processo.Exited += new EventHandler(Arquivo_Exited);
         Processo.Start();
         ArquivoAberto.Processo = Processo;
         ProcessosAbertos.Add(ArquivoAberto);
     }
 }