Desenvolvimento - C#

Criando um menu que lista os formulários Mdi que estão abertos na aplicação

Este artigo procura mostrar como criar um menu que lista os formulários Mdi que estão abertos na aplicação.

por Márcio Fábio Althmann



Uma das últimas solicitações de um dos nossos clientes foi que criássemos um menu de nome "Janela" para mostrarmos os formulários abertos na aplicação.

Confesso que pensei em soluções mirabolantes para resolver isso até que conversei com meu amigo Dennes Torres http://br.thespoke.net/blogs/dennes/default.aspx e ele me disse que havia visto alguma propriedade no componente Menu que resolveria esse problema.

Verificando o componente encontrei a propriedade MdiWindowListItem em que eu específico qual MenuItem irá mostrar os Formulários Filhos.

Por mais simples que seja isso, decidi criar esse artigo para explicar sobre formulários MDI (Multiple Document Interface) Pai e Filho que, caso não estejam configurados corretamente não adiantará nada especificar o MenuItem na propriedade MdiWindowListItem.

Vamos à criação!

Crie um projeto de Windows Forms chamado MenuJanela e nele renomeie o Form1 para frmPai. No frmPai altere a Propriedade IsMContainer para true como na imagem abaixo:

Quando fazemos isso, estamos dizendo que o frmPai será um container para outros formulários, outro detalhe que perceberá é que a cor de fundo do formulário irá mudar, vai ficar mais escura.

Agora crie mais dois formulários frmFilho1 e frmFilho2. No frmPai adicione o componente Menu e nele crie os menus como na imagem a seguir:

O menu Janela não terá nenhum Item.

Selecione o componente Menu e informe na propriedade MenuWindowItemList qual MenuItem irá mostrar os formulários filhos.

Ok, nesse momento informamos que o Menu Janela irá receber os formulários filhos do frmPai.

Vamos agora escrever o código necessário para cada item do Menu Formulários abrir o seu respectivo form:

Detalhe importante: Se a propriedade MdiParent do formulário filho não for setada com o formulário pai dele, ele não aparecerá no menu Janela.

Segue imagem do menu Janela funcionando, repare que os formulários frmFilho1 e frmFilho2 estão abertos e por isso listado no menu de nome Janela.

Márcio Fábio Althmann

Márcio Fábio Althmann