Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

sabing

c# mdiparent

Recommended Posts

sabing

Pessoal eu estou com uma duvida eu estou fazendo um programinha, tenho um formulario mãe que abre varios formulario quando eu abro um formulario dentro do formulario mãe ele abre do jeito que quero quando vou abrir um outro formulario apartir que ja esta aberto não tenho ideia como fazer para abrir entende? tipo eu uso esse codigo em c# para abrir formulario dentro do formulario mãe

private void padrãoToolStripMenuItem_Click(object sender, EventArgs e)

{

Calculadora bb = new Calculadora();

bb.MdiParent = this;

bb.Show();

}

Imagem do meu programinha:

http://www.4shared.com/account/dir/HzMs8hp_/_online.html#dir=HzMs8hp_

Então eu quero que quando eu clico em um botão do formulario filho ele abra outro formulario dentro do formulario mãe, mais eu não tenho ideia como fazer isso entende?

Share this post


Link to post
Share on other sites
renafi

Se bem eu percebi, no button click do formulário filho, tens de pegar o formulário pai:

Form pai = this.ParentForm;

E depois associar esse objecto como MdiParent:

NovoForm f = new NovoForm();

f.MdiParent = pai;

NovoForm.Show();


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Share this post


Link to post
Share on other sites
sabing

olha como fiz

mae pai = this.ParentForm;

ReciboVendaComum f = new ReciboVendaComum();

f.MdiParent = pai;

f.Show();

olha como fiz

mae pai = this.ParentForm;

ReciboVendaComum f = new ReciboVendaComum();

f.MdiParent = pai;

f.Show();

Esse da erro nem compila

Esse não funciona

mae pai = new mae();

ReciboVendaComum f = new ReciboVendaComum();

f.MdiParent = pai;

f.Show();

Share this post


Link to post
Share on other sites
renafi

O que é que não funciona? Qual é o erro?


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Share this post


Link to post
Share on other sites
sabing

Meu amigo eu fiz esse codigo , pelo que tu falou eu entendi assim não sei foi isso que você me passou , da erro e nem compila:

mae pai = this.ParentForm; // essa linha da erro

ReciboVendaComum f = new ReciboVendaComum();

f.MdiParent = pai;

f.Show();

Eu fiz um outro codigo assim porem compila mais não funciona:

mae pai = new mae();

ReciboVendaComum f = new ReciboVendaComum();

f.MdiParent = pai;

f.Show();

Error 1 Cannot implicitly convert type 'System.Windows.Forms.Form' to 'ControleFazenda.mae'. An explicit conversion exists (are you missing a cast?) C:\Users\Familia\Desktop\Controle de Estoque\ControleFazenda\ControleFazenda\Vender.cs 271 27 ControleFazenda

Erro do codigo abaixo:

mae pai = this.ParentForm; // essa linha da erro

ReciboVendaComum f = new ReciboVendaComum();

f.MdiParent = pai;

f.Show();

Share this post


Link to post
Share on other sites
DiogoFialho

Pelo que eu percebi o que tu queres fazer é abrir um formulário "neto" do form mdi, certo?

Caso seja isso, poderás fazer o seguinte:

FormFilho Filho = new FormFilho();
Filho.MDIParent = this;
Filho.Show();

FormNeto Neto = new FormNeto();
Neto.ShowDialog();

Assim irás abrir um form em show dialog do form anterior aberto.

Mas atenção porque, ao fechares o form que abriu o neto, o neto também será fechado.

Caso queiras isso, terás de jogar com o Hide e o Show, mas isso é perigoso, pois se te ocorre uma excepção na aplicação o processo poderá ficar pendurado.

Share this post


Link to post
Share on other sites
sabing

para abrir o formulario neto eu fiz assim

ReciboVendaComum Neto = new ReciboVendaComum();

Neto.ShowDialog();

ele abre porem fora do pai como se fosse independente da aplicação

Share this post


Link to post
Share on other sites
DiogoFialho

Experimenta fazer o seguinte então:

FormNeto Neto = new FormNeto();
Neto.MDIParent = FormFilho.MDIParent;
Neto.Show();

Não te esqueças que o Filho tem de estar anteriormente declarado e definido como filho MDI do form Principal.

Share this post


Link to post
Share on other sites
sYnced

Experimenta fazer o seguinte então:

FormNeto Neto = new FormNeto();
Neto.MDIParent = FormFilho.MDIParent;
Neto.Show();

Não te esqueças que o Filho tem de estar anteriormente declarado e definido como filho MDI do form Principal.

Este é o metodo que uso e dá me sempre certo...

Share this post


Link to post
Share on other sites
sabing

Muito obrigado! funcionou

FormNeto Neto = new FormNeto();

Neto.MDIParent = FormFilho.MDIParent;

Neto.Show();

Eu quebrei a minha cabeça com isso ! :P

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.