Formulário Modal como Filho de um MDI
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
Curtidas 0
Respostas
Euuu
18/02/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é!
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é!
GOSTEI 0
Maurício Leal
18/02/2010
Giancarlo,
Mas aí eu exibo o form como não modal. O form precisa ser modal.
Maurício
Mas aí eu exibo o form como não modal. O form precisa ser modal.
Maurício
GOSTEI 0
Euuu
18/02/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é!
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é!
GOSTEI 0
Maurício Leal
18/02/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
GOSTEI 0
Eleuterio Gonzalez
18/02/2010
tb tenho esta duvida
GOSTEI 0
Contadeletada
18/02/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.
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.
GOSTEI 0