none
Como abrir o Form no Panel de outro Form e como Proibir um form de abrir duas vezes

    Question

  • Olá, sou meio novo e estou criando um programa simples, acredito eu, de acordo com alguns exemplos que ja vi, que posso estar fazendo de uma forma meio estranha...
    E não consigo mudar a maneira que quero de acordo com os exemplos que ja vi

    Tenho um Menu principal com uma MenuStrip em cima, e criei um Panel embaixo, como Fill na janela...
    Os primeiros Forms para abrir nela utilizei
    "         private void Clientes(object sender, EventArgs e)
            {
                Busca_Clientes a = new Busca_Clientes();
                a.TopLevel = false;
                Inicial.Controls.Add(a);
                a.Show();
                a.BringToFront();
            } "
    Utilizei o BringToFront para quando uma janela diferente for aberta ela aparecer na frente das outras...
    o nome do Panel é o Inicial...
    Dentro desse Busca_Clientes, eu preciso abrir outro Form, e nao consigo utilizar o Inicial, pois não quero criar um panel em cada form para isso, e sim abrir tudo dentro do menu principal...
    Vou precisar tambem de algo como, nao poder fechar o Form anterior ao aberto, exemplo: Não fechar o Busca_Clientes se o Cadastro_Clientes estiver aberto...

    E tambem algo que não deixe o usuario abrir 2 forms de Busca_Cliente apartir do MenuStrip do menu principal...

    Acho que é muita duvida, mas procurei em MUITOS foruns, e não obtive resultados.

    Agradeço quem puder me ajudar.
    Obrigado.
    Thursday, November 12, 2009 3:00 AM

All replies

  • Para instanciar apenas uma vez voce pode usar:

    private void MenuItem_Click(object sender, EventArgs e)

    {

    // A janela já está aberta?

    if (this .janelaFilha != null )

    {

    // Sim. Então apenas deixe-a ativa (foco)

    this .janelaFilha.Activate();

    }

    else

    {

    // Não. Então vamos abrir e guardar a referência

    this .janelaFilha = new JanelaFilha ();

     

    // Vamos reinicializar a variável quando a janela for fechada

    this .janelaFilha.Closed += delegate { this .janelaFilha = null ; };

     

    // Mostra a janela

    this .janelaFilha.Show();

    }

     

    mas para o resto está meio confuso, tente explicar melhor!


    Thursday, November 12, 2009 11:27 AM
  • Legal, Obrigado!!

    Agora quanto a parte confusa é assim:

    Meu Menu_Principal, tem um MenuStrip, e um Panel1 nomeado de "Inicial", o painel coloquei para seguir a janela toda, no caso do usuario decidir maximizar e o painel acompanhar.
    Como sou novo, e me deram algumas dicas, o meu sistema eh todo em Form, cada janela eh um Form...
    No Menu, tem Cadastros>Clientes, que abre a janela Busca_Clientes, que possui os botoes para pesquisar os clientes, inserir, alterar e excluir.
    Para Abrir o Busca_Clientes eu utilizo:

            private void Clientes(object sender, EventArgs e)
            {
                Busca_Clientes a = new Busca_Clientes();
                a.TopLevel = false;
                Inicial.Controls.Add(a);
                a.Show();
                a.BringToFront();
            }

    Então, gostaria dentro desse novo form que abri, o Busca_Clientes, gostaria de abrir o Cadastro_Clientes, que é um outro Form, no mesmo Panel1 ("Inicial") que esta localizado no Form Menu_Principal.

    Obrigado!
    Thursday, November 12, 2009 8:34 PM
  • Wellington em relação ao menu eu respondi uma duvida semelhante neste link

    vê se ajuda


    Abraços!

    Rudson Kiyoshi Souza Carvalho
    Friday, November 13, 2009 1:42 AM
  • Hmm, Acho que tenho um probleminha tanto na sua explicação quanto na do Daniel
    Quando ja tenho um form, e quero que outros forms abram dentro dele, eles tem que ser Filhos se é isso que entendi...
    E os Filhos tambem vao ter outros forms para abrir o que tambem vao ter que ter filhos...
    E onde ou como transformo os Forms que ja tenho em filho de outro?

    Desculpem, eu realmente não sou de programação, mas eh meu trabalho de tcc, e ao menos as janelas funcionando com alguma coisa eu preciso deixar pronto.
    (Faço Ciência da Computação, infelizmente não tem muita base em condificações então fico meio perdido nessa parte...)

    Obrigado!
    Friday, November 13, 2009 3:03 AM