none
exibir uma janela aberta RRS feed

  • Pergunta

  • Galera, estou com uma dificuldade, é o seguinte, ao montar um sistema Desktop criei um form principal e nele chamo outros forms ( que não estão classificados como filhos, pois só abro um e não vários) porem caso aconteça de o form perder o foco, por exemplo se clicar novamente no form principal o segundo form fica atrás do Principal, como posso fazer que seja exibido novamente o segundo form, sei criar um novo ( eu desabilitei a exibição do segundo form na Taskbar) o que eu gostaria que ele voltasse com as informações que já estavam nele, tipo como funciona o outlook express, se você clicar nele e ele estiver aberto ele volta para onde estava.

    Tentei da seguinte forma mas não funcionou eu sei que na hora de instanciar, não posso usar o metodo new, mas como fazer:

          if (statusClientes == "FECHADO")
                {
                    frmClientes telaClientes = new frmClientes();
                    statusClientes = "ABERTA";
                    telaClientes.Show();
                }
                else
                {
                    //Aqui seria minha dificuldade
                }

    **Raphael Chaves**
    quinta-feira, 22 de outubro de 2009 17:56

Respostas

  • Ahh ta, então faça assim, coloque esse seu form como uma variável de sua classe

    private Clientes clientes = null; 

    Escreva esse código no evento do botão:

    if (clientes == null || clientes.IsDisposed)
                {
                    clientes = new Clientes();
                    clientes.Show();
                }
                else if (!clientes.Focused)
                {
                    clientes.Focus();
                }

     

    • Editado Murilo Amaru Gomes quinta-feira, 22 de outubro de 2009 18:47 iniciando form clientes
    • Marcado como Resposta Jurua quinta-feira, 22 de outubro de 2009 19:05
    quinta-feira, 22 de outubro de 2009 18:46

Todas as Respostas

  • Não entendi muito bem, pelo que entendi  você não quer que depois que você abra o segundo form, a pessoa só poderá clicar no principal depois de fechar o segundo é isso?
    Se for use telaClientes.ShowDialog();

    quinta-feira, 22 de outubro de 2009 18:22
  • Não Murilo,

    eu não quero deixar o segundo form, como modal, o acesso ao form principal pode vai existir.

    Hoje está da seguinte forma, abro  a tela para clientes, e se eu clicar fora dela ela perde o foco, só à recupero com o alt+tab, e se eu clicar no botão que chama o form Clientes novamente ele acaba abrindo um form novo.

    eu queria que quando perdesse o foco, aclicar no botão Clientes ele recuperasse o form e não criasse um novo, por isso tentei usar o if para não usar o "tela = new".


    **Raphael Chaves**
    quinta-feira, 22 de outubro de 2009 18:35
  • Ahh ta, então faça assim, coloque esse seu form como uma variável de sua classe

    private Clientes clientes = null; 

    Escreva esse código no evento do botão:

    if (clientes == null || clientes.IsDisposed)
                {
                    clientes = new Clientes();
                    clientes.Show();
                }
                else if (!clientes.Focused)
                {
                    clientes.Focus();
                }

     

    • Editado Murilo Amaru Gomes quinta-feira, 22 de outubro de 2009 18:47 iniciando form clientes
    • Marcado como Resposta Jurua quinta-feira, 22 de outubro de 2009 19:05
    quinta-feira, 22 de outubro de 2009 18:46
  • Muito Obrigado Murilo, era exatamente isso.

    **Raphael Chaves**
    quinta-feira, 22 de outubro de 2009 19:05