Array
(
)

Formulário Modal como Filho de um MDI

Maurício Leal
   - 18 fev 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.  

Euuu
   - 22 fev 2010

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é!

Maurício Leal
   - 22 fev 2010

Giancarlo,

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

Maurício

Euuu
   - 23 fev 2010

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é!

Maurício Leal
   - 06 mar 2010

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

Eleuterio Gonzalez
   - 07 mar 2010

tb tenho esta duvida

Contadeletada
   - 03 mai 2010

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.