none
CONTROLE NO MDI FORM - AJUDA RRS feed

  • Pergunta

  • Pessoal, meu problema é o seguinte.

    Tenho um FORM MDI. No meio desse form MDI bem naquela parte cinza tenho um Botão.

    Quando o usuário clica nesse botão, ele abre um formulário qualquer, porem esse formulário aparece atraz do botão. Entendo que ele aparece atraz porque o formulário esta sendo chamado como filho e o botão esta contido no MDI que é o pai.

     

    Mas não tem como fazer ele aparecer na frente deste botão?

    Eu consegui fazer ele aparecer, utilizando o .Parent ao invéz de .MDIParent, porem quando uso o .Parent e minimizo o formulário aberto ele some, ai tenho que fazer um calculo e reposicionar esse formulário minimizado.

     

    O problema é que esse MDIParent é usado em mtas partes do sistema.

     

    Então tem algum modo de fazer isso utilizando o MDIParent ? Algum tipo de z-index?  Ajudem pf...

     

    sexta-feira, 21 de janeiro de 2011 17:16

Respostas

  • Problema: Tenho um menu personalizado, ele é igual ao menu do OutLook 2007. Nesse menu eu listava os meus formulários do projeto e quando o usuário clicava aparecia o formulário correspondentes. Porem se eu tivesse um formulário muito grande, o menu aparecia na frente, e criava uma barra de rolagem horizontal.

     

    Solução:Peguei esse bendito menu, criei um form chamado "WrapperMenu", e nesse form eu coloquei  a propriedade FormBordStyle = None, e adicionei o meu menu com a propriedade Dock =Fill, isso fez com que meu menu preenche-se todo o formulário.

     

    No load do MDI, eu criei uma instancia desse "WrapperMenu", dei um .Show e posicionei la lateral esquerda do MDI. Pronto problema resolvido, como o menu virou um form, ele aparecia atraz, ai a sub sendToback e BringToFront voltou a funcionar. :D

     

    Para ficar mais legal adicionei um droplist no click direito do form "WrapperMenu", ai usuário pode fazer tipo de um draganddrop no menu. e tambem pode fechar o menu e abrir.

     

    :D

     

     

     

    sexta-feira, 11 de fevereiro de 2011 11:52

Todas as Respostas

  • Kelvin, experimenta alterar a propriedade TopMost do formulário que você deseja deixar vísivel para True , acho que isso resolve.

    Abraços.


    Se a resposta for útil, favor votar como útil para que ajude outros usuários com a mesma dúvida | Dicas e artigos sobre .NET em http://programandodotnet.wordpress.com e http://www.devmedia.com.br/wellingtonbalbo | Siga-me no Twitter: @wellingtonbalbo
    sábado, 22 de janeiro de 2011 21:21
  • O MDI não é para ser utilizado desta maneira, para isto existem os menus. De qualquer maneira, após exibir o Form, vc pode chamar o método SendToBack do botão. Mas isso vai fazer com que ele fique por traz da parte cinza, portanto, vai desaparecer. Tem o mesmo efeito de Visible = false no botão.

     

    Att,

    Fábio


    "To alcohol! The cause of and solution to all of life's problems." - Homer Simpson
    terça-feira, 25 de janeiro de 2011 23:41
  • Sei, que num é assim que usa, isso foi um exemplo, é porque estava usando um menu estilo o do office, e ele ficou assim. mas ja consegui.. Obrigado!

    achei a solução para esse problema.

    quinta-feira, 10 de fevereiro de 2011 12:00
  • Kelvin,

    Por favor, poste a solução que você utilizou para que outras pessoas possam se beneficiar no futuro...

    Obrigado pelo apoio...


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    quinta-feira, 10 de fevereiro de 2011 15:42
    Moderador
  • Problema: Tenho um menu personalizado, ele é igual ao menu do OutLook 2007. Nesse menu eu listava os meus formulários do projeto e quando o usuário clicava aparecia o formulário correspondentes. Porem se eu tivesse um formulário muito grande, o menu aparecia na frente, e criava uma barra de rolagem horizontal.

     

    Solução:Peguei esse bendito menu, criei um form chamado "WrapperMenu", e nesse form eu coloquei  a propriedade FormBordStyle = None, e adicionei o meu menu com a propriedade Dock =Fill, isso fez com que meu menu preenche-se todo o formulário.

     

    No load do MDI, eu criei uma instancia desse "WrapperMenu", dei um .Show e posicionei la lateral esquerda do MDI. Pronto problema resolvido, como o menu virou um form, ele aparecia atraz, ai a sub sendToback e BringToFront voltou a funcionar. :D

     

    Para ficar mais legal adicionei um droplist no click direito do form "WrapperMenu", ai usuário pode fazer tipo de um draganddrop no menu. e tambem pode fechar o menu e abrir.

     

    :D

     

     

     

    sexta-feira, 11 de fevereiro de 2011 11:52