Jump to content
estimado

Como abrir um Form sem ter que abrir nova pagina?

Recommended Posts

estimado

boas

Bem, queria fazer um pequeno programa de simulação, bem, e o que eu queria era tipo criar um Form.

Nesse Form adicionar 3 Buttons ou até mais!

Depois no Button 1 supomos que fica com o nome "Sorriso", no Button 2 "Cara" e por fim no Button 3 "Sorridente".

Tipo como esta na imagem:

semttulopso.png

Agora, o que eu queria era fazer depois isto:

Abrir um Form dentro do proprio Form 1. Sem ter que abrir uma nova janela.

Eu tirei um video do Nero que é exactamente o que eu queria:

http://www.youtube.com/watch?v=vxRh3jlew3k

Podem-me ajudar?

Estou a fazer no Visual Studio 2010 em C++

Obrigado


Visual Studio 2010 C#

Share this post


Link to post
Share on other sites
pikax

Nunca trabalhei com o VC++ a fazer ambiente gráfico, mas trabalhei em QT Creator há 2 formas(que eu estou a ver agora), 1ª-gasta mais memória(mas dá menos trabalho); 2ª-O inverso  :thumbsup:

1ª- os objectos devem ter um membro para ficar visível ou não, basta meteres o valor a "false";

2ª- crias e destróis os objectos da form, não é muito aconselhável já que é feito por código em bruto, bastava criares uma função para te criar a tal form, e criares outra para apagar, depois quando o botão sorriso fosse clicado, destruía a form anterior e chamavas a função para criar a form.


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
estimado

boas

Peço desculpa, enganei-me não é em C++ mas sim em C*.

Peço que movam para a secção acima sff!

Obrigado

Pikax então podes-me explicar melhor como fazer isso, mas no VS ? em C* ?


Visual Studio 2010 C#

Share this post


Link to post
Share on other sites
estimado

Sim , é em C#, as teclas no teclado do pc da minha cota são diferentes do meu teclado do pc;)

Peço desculpa!

Se me poderem ajudar a fazer aquilo agradecia! :thumbsup:


Visual Studio 2010 C#

Share this post


Link to post
Share on other sites
Black Tiger III

Boas

Para isso é como disseram acima. Podes usar a propriedade .Visible =true || false. ou então crias e destróis dinamicamente. Se é um programa pequeno ou para testes, utiliza painéis e utiliza a propriedade ".Visible" de cada um deles. É muito mais simples e faz o mesmo. O problema é que carrega todos os objectos ao carregar a app.

Imaginemos que tens essa app.

tens o botão:

- _sorrisoButton;

- _caraButton;

- _sorridenteButton;

e os painéis:

- _sorrisoPannel;

- _caraPannel;

- _sorridentePannel;

#region button
private void _sorrisoButton_click(object sender, EventArgs e)
{
        disablePannel();
        _sorrisoPannel.Visible=true;
}
private void _caraButton_click(object sender, EventArgs e)
{
        disablePannel();
        _caraPannel.Visible=true;
}
private void _sorridenteButton_click(object sender, EventArgs e)
{
        disablePannel();
        _sorridentePannel.Visible=true;
}
#endregion

#region Aux Methods
private void disablePannel(){
        _sorrirPannel.Visible=false;
        _caraPannel.Visible=false;
        _sorridentePannel.Visible=false;
}
#region

Não está optimizado, mas funciona...


Órale MI RAZA, MY BLOOD HOLMES BELONGS TO ME ÉSE...

EENNNGGGGEEEENNNNNNNHHHHAAAARRRRRIIIIIIIIIIAAAAAAAINFORMATICASISTEMAS....

Share this post


Link to post
Share on other sites
estimado

boas

Bem

Dá-me erro quando eu meto esse codigo:

Eu no Button do Sorriso clico 2 vezes e aparece-me o Form do Código, depois em baixo digito!

disablePannel();
        _sorrisoPannel.Visible=true;

sucessivamente nos outros e dá-me erros, em tudo!

Do que estou a fazer mal?

Podes-me ajudar?

Agradeço desde já

cumps


Visual Studio 2010 C#

Share this post


Link to post
Share on other sites
Black Tiger III

Para esse código funcionar, tens que ter:

os botões:

- _sorrisoButton;

- _caraButton;

- _sorridenteButton;

e os painéis:

- _sorrisoPannel;

- _caraPannel;

- _sorridentePannel;

(com estes nomes)

Quais são os erros que te dão?


Órale MI RAZA, MY BLOOD HOLMES BELONGS TO ME ÉSE...

EENNNGGGGEEEENNNNNNNHHHHAAAARRRRRIIIIIIIIIIAAAAAAAINFORMATICASISTEMAS....

Share this post


Link to post
Share on other sites
estimado

Boas

Desculpa a ignurancia, mas eu Tipo num Button aletaro o nome dele para "- _sorrisoButton;" ?

Obrigado


Visual Studio 2010 C#

Share this post


Link to post
Share on other sites
Black Tiger III

Boas

Desculpa a ignurancia, mas eu Tipo num Button aletaro o nome dele para "- _sorrisoButton;" ?

Obrigado

Para esse código funcionar sim.

Repara, tu estás a escrever código e tens 20 botões. Convém tu dares nomes que possas lembrar facilmente para alterares as propriedades com facilidade.

No caso do código que escrevi, alterei o nome dos 3 botões para

_sorrisoButton;

_caraButton;

_sorridenteButton;

No código que escrevo, os nomes das variáveis começam sempre por "_" e no final coloco o tipo a que corresponde essa variável (Button, Pannel, etc) Se essa variável não corresponder a nenhum elemento desse género não coloco nada. Por exemplo:

Se tenho um contador no meio do código, dou o nome de "_count".

Percebeste?


Órale MI RAZA, MY BLOOD HOLMES BELONGS TO ME ÉSE...

EENNNGGGGEEEENNNNNNNHHHHAAAARRRRRIIIIIIIIIIAAAAAAAINFORMATICASISTEMAS....

Share this post


Link to post
Share on other sites
herty

Se fosse eu, iria usar users control.

Podes usar na mesma um panel. No contrutor do formulario instancias os user control e adicionas ao panel.

Agora fazes uma função que esconda os controlos

//como um panel contem uma lista de controlos torna-se mais facil, não precisando de saber quantos temos
private void disablePannel(){
        //ok então vamos esconder, aproveitanto a lista
        foreach (UserControl item in panel1.Controls)
        {
              item.Hide();
         }
}

Agora so precisas de ao carregar no botão para te mostrar o user control que pretendes.

Cumps.

Share this post


Link to post
Share on other sites
estimado

Boas

Bem, desde ja agradeco a vossa ajuda,

mas será que nao existe nenhum tutorial a explicar isto ?

Seria mais facil, pois para mim que nunca fiz isto, sera dificil! ;)

Agradecia que me podessem explicar melhor!

Obrigado

cumps


Visual Studio 2010 C#

Share this post


Link to post
Share on other sites
Black Tiger III

é pa, entra no canal do P@P, se eu estiver por lá posso dar-te uma ajuda...


Órale MI RAZA, MY BLOOD HOLMES BELONGS TO ME ÉSE...

EENNNGGGGEEEENNNNNNNHHHHAAAARRRRRIIIIIIIIIIAAAAAAAINFORMATICASISTEMAS....

Share this post


Link to post
Share on other sites
estimado

Black Tiger III como é que eu chego a esse canal?

Podes-me enviar o Link por PM ?

Obrigado


Visual Studio 2010 C#

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.