none
Form Splash C# .NET CF RRS feed

  • Pergunta

  • Colegas, boa noite.

    Estou tentando fazer uma tela de splash, mas tô "apanhando" feito doido.
    No Program.cs chamo o form inicial da minha aplicação:

    frmHome = new FrmHome();
    Application.Run(frmHome);

    No evento Load desse form eu verifico se existe um arquivo para ser descompactado, caso exista eu chamo um segundo form para descompactar e "popular" minha base de dados:

    // Desabilita o form atual (Home)
    this.Enabled = false;
    this.Visible = false;
    Application.DoEvents();
    // Apresenta o primeiro formulário de descompactação dos arquivos
    frmDescompacta = new FrmDescompacta();
    frmDescompacta.ShowDialog();

    Porém os 2 forms desaparecem da tela, as rotinas do form de descompactação são realizadas e no final dessas rotinas eu fecho o form de descompactação, ai na volta ao primeiro form eu habilito e seto a propriedade Visible = true, ai esse form aparece. Porém meu problema é que fica um bom tempo sem nenhum form aparecer e o usuário pensa que não entrou no programa, porém está processando. Como faço para resolver esse problema ? Que seja exibido o form de descompactação mostrando o progresso das rotinas de descompactação e inserção dos registros no banco de dados. Resumindo, um form Splash no C# .NET CF, pois já pesquisei bastante na internet, tentei várias implementações, porém não tive sucesso.

    Desde já, obrigado.

    Leonardo
    quinta-feira, 4 de março de 2010 01:12

Respostas

  • Bom dia.

    Consegui resolver da seguinte maneira: no Program.cs eu chamei o form Splash, no evento Activated dele eu faço a verificação se existe arquivo a ser descompactado, havendo, faço a descompactação, e no final, tendo arquivo de compactação ou não eu escondo esse form (Enabled = false; Visible = false) e chamo o form inicial da aplicação com ShowDialog().

    Obrigado.

    Leonardo
    quarta-feira, 17 de março de 2010 11:37

Todas as Respostas

  • Leonardo,

    Ué... Se você não escondeu o form de descompactação antes de completar o processamento, não tem pq ele estar desaparecendo... Tem alguma coisa errada...

    Acho que se você postar o código dos dois forms vai ajudar a identificar o que está acontecendo...
    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    quinta-feira, 4 de março de 2010 16:37
    Moderador
  • Bom dia.

    Consegui resolver da seguinte maneira: no Program.cs eu chamei o form Splash, no evento Activated dele eu faço a verificação se existe arquivo a ser descompactado, havendo, faço a descompactação, e no final, tendo arquivo de compactação ou não eu escondo esse form (Enabled = false; Visible = false) e chamo o form inicial da aplicação com ShowDialog().

    Obrigado.

    Leonardo
    quarta-feira, 17 de março de 2010 11:37