Jump to content
nando4

Abrir user control dentro de user control

Recommended Posts

nando4

Boas, estou com umas duvidas/problemas acerca dos "panels".

É o seguinte:

- tenho o form principal onde tenho 1 panel e alguns botoes

- quando carrego num botao, o user control respectivo deve aparecer no panel (ate aqui tudo bem)

- no user control que abri tem mais botoes que quando carregar num deles neles deve abrir o respectivo user control no panel (aqui é que estou a ter problemas em descobrir como fazer isto)

//abre o pg_clientes no panel
panel1.Controls.Clear();
pg_clientes oi = new pg_clientes();
panel1.Controls.Add(oi);
oi.Show();

Este é o codigo que estou a usar para abrir os user controls no panel

A ordem pela qual eles devem abrir é a seguinte: Form principal -> Clientes -> Adicionar novo cliente

Dos Clientes para o Adicionar novo cliente nao estou a conseguir porque o objecto panel1 ja nao é reconhecido

Agradeço desde ja qualque ajuda

Cumprimentos

Share this post


Link to post
Share on other sites
nelsonr

Se pretendes aceder ao panel1 dentro do usercontrol, podes criar lá dentro uma variavel publica do tipo do panel e quando crias o usercontrol passas la para dentro o panel1.

(ou crias uma variavel privada e passas la para dentro por um metodo do usercontrol)

Apesar de achar que o melhor seria o usercontrol mandar o form principal fazer esse trabalho de abrir um novo usercontrol, em vez de abrir ele proprio

Share this post


Link to post
Share on other sites
nando4

Nao sei se percebi bem o que querias dizer, querias dizer algo assim deste genero?

Form1 principal = new Form1();

principal.panel1.Controls.Clear();
pg_add_cliente oi = new pg_add_cliente();
principal.panel1.Controls.Add(oi);
oi.Show();

Share this post


Link to post
Share on other sites
nelsonr

No entanto, também podes aceder ao panel1 dentro do usercontrol usando this.parent.

Mas se dentro do usercontrol mandares o panel1 (parent) limpar os controls, vais limpar o próprio usercontrol e depois dá erro.

Podes é, no click no usercontrol, em vez de mandares o panel limpar, escondes o proprio e mostra o novo

this.Hide();
this.Parent.Controls.Add(new UserControl2());

Share this post


Link to post
Share on other sites
nando4

No entanto, também podes aceder ao panel1 dentro do usercontrol usando this.parent.

Mas se dentro do usercontrol mandares o panel1 (parent) limpar os controls, vais limpar o próprio usercontrol e depois dá erro.

Podes é, no click no usercontrol, em vez de mandares o panel limpar, escondes o proprio e mostra o novo

this.Hide();
this.Parent.Controls.Add(new UserControl2());

Muito obrigado funcionou as mil maravilhas :thumbsup:

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

×
×
  • Create New...

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.