Formulário Modal como Filho de um MDI

18/02/2010

Pessoal, Como carregar um formulário modal como filho de um MDI ?   Tentei o seguinte:   form1 fm = new form1(); fm.MdiParent = this; fm.ShowDialog();   O .NET retorna o erro: O formulário que não é de nível superior não pode ser exibido como caixa de diálogo modal. Remova o formulário de qualquer pai antes de chamar showDialog.   Tentei também:   form1 fm = new form1(); fm.TopLevel=true; fm.MdiParent = this; fm.ShowDialog();   Mas, na atribuição de MdiParent, o .NET retorna TopLevel para False;   Alguma idéia ?   Grato.  

Maurício Leal

Respostas

22/02/2010

Euuu

Olá Maurício,

Então, use o ".Show();"  ao invés do ".ShowDialog();"

Utilizando o seu código como exemplo:

form1 fm = new form1();
fm.MdiParent = this;
fm.Show();

Até!
Responder Citar

22/02/2010

Maurício Leal

Giancarlo,

Mas aí eu exibo o form como não modal. O form precisa ser modal.

Maurício

Responder Citar

23/02/2010

Euuu

Olá Maurício,
Verdade, então faz o seguinte, retire o "fm.MdiParent = this;" e utilize o ".ShowDialog();" deixe da seguinte forma.
form1 fm = new form1();
fm.ShowDialog();
Até!
Responder Citar

06/03/2010

Maurício Leal

Giancarlo,   É exatamente o que estou fazendo. Porém, o formulário fica solto na tela, isto é, ele não fica restrito ao formulário MDI da aplicação.   Maurício
Responder Citar

07/03/2010

Eleuterio Gonzalez

tb tenho esta duvida
Responder Citar

03/05/2010

Contadeletada

Maurício, para resolver este problema tenho feito da seguinte forma (C# .Net VS2010):   Exemplo básico:            Form1 frm = new Form1();
         frm.ShowInTaskbar = false;
         frm.StartPosition = FormStartPosition.CenterParent;
         frm.ShowDialog(MdiFormPrincipal.ActiveForm); O form fica solto sobre o Mdi, restrito a ele. Mas como não aparece destacado na barra de tarefas
e abre no centro do próprio Mdi,
o usuario nem percebe que ele nao está 'dentro' do Mdi. Não é 100% como queríamos mas pra mim tem funcionado bem! Espero que seja útil, Abraço, ate mais.
Responder Citar