Array
(
)

Dúvidas esconder mostrar Panel

Rumao
   - 02 out 2012

Bom dia a todos, estou tentando colocar em um Form um Panel com um botão onde ao clicar ele recolhe o Panel e se clicar novamente expande o mesmo.
Não estou conseguindo gerar um código que faça isso.
Segue imagem do progeto para melhor entendimento:http://adilsonrumao.com/atm/tela.jpg
Consigo deixar o Panel Visible ou não, mas o botão não acompanha o panel, gostaria que ao ocultar o Panel o botão encostasse no menu acima.
#Código

private void button1_Click(object sender, EventArgs e)
        {
            if (panel1.Visible == false)
                panel1.Visible = true;
            else
                panel1.Visible = false;
        }

Alisson
|
MVP
Pontos: 3400
    02 out 2012


Citação:
Bom dia a todos, estou tentando colocar em um Form um Panel com um botão onde ao clicar ele recolhe o Panel e se clicar novamente expande o mesmo.
Não estou conseguindo gerar um código que faça isso.
Segue imagem do progeto para melhor entendimento:http://adilsonrumao.com/atm/tela.jpg

Consigo deixar o Panel Visible ou não, mas o botão não acompanha o panel, gostaria que ao ocultar o Panel o botão encostasse no menu acima.

#Código

private void button1_Click(object sender, EventArgs e)
        {
            if (panel1.Visible == false)

                panel1.Visible = true;
            else
                panel1.Visible = false;
        }


Alisson
|
MVP
Pontos: 3400
    02 out 2012


Citação:
Bom dia a todos, estou tentando colocar em um Form um Panel com um botão onde ao clicar ele recolhe o Panel e se clicar novamente expande o mesmo.
Não estou conseguindo gerar um código que faça isso.
Segue imagem do progeto para melhor entendimento:http://adilsonrumao.com/atm/tela.jpg

Consigo deixar o Panel Visible ou não, mas o botão não acompanha o panel, gostaria que ao ocultar o Panel o botão encostasse no menu acima.

#Código

private void button1_Click(object sender, EventArgs e)
        {
            if (panel1.Visible == false)
            {
                panel1.heigth = o valor que quer que ele fique; 
            }
            else
            {
                panel1.heigth = o valor que quer que ele fique; 
            }
        }


Aconselho pegar o valor do tamanho que ele está e depois o valor do tamanho que ele vai ficar.

Washington Morais
   - 02 out 2012

Existe um componente nativo do AjaxControlToolkit que se chama CollapsiblePanel. Faz exatamente o que voce precisa.

Referência:
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CollapsiblePanel/CollapsiblePanel.aspx

Abraços

___________________
Washington Morais
MCP / MCTS

Cristiano Santos
   - 02 out 2012

Meu amigo, por acaso você quer fazer uma "janela" semelhante a que é utilizada na ToolBox, Solution Explorer do Visual Studio?
Caso sim, posso te passar uma ideia.

Abraços,

Cristiano Joaquim

Rumao
   - 02 out 2012

Então estou usando assim?
#Código

private void button1_Click(object sender, EventArgs e)
        {
            if (panel1.Visible == false)
            {
                panel1.Visible = true;
                button1.Location = new Point(button1.Location.X, button1.Location.Y + 150);

            }
            else
            {
                panel1.Visible = false;
                button1.Location = new Point(button1.Location.X, button1.Location.Y - 118);
            }
        }


Não estou conseguindo guardar a posição dele, no primeiro click tudo ok, mas do segundo em diante e muda a posição Y tipo se era 150 e joga o tamnho do Panel + 150.

Rumao
   - 02 out 2012

Então estou usando assim?
#Código

private void button1_Click(object sender, EventArgs e)
        {
            if (panel1.Visible == false)
            {
                panel1.Visible = true;
                button1.Location = new Point(button1.Location.X, button1.Location.Y + 150);

            }
            else
            {
                panel1.Visible = false;
                button1.Location = new Point(button1.Location.X, button1.Location.Y - 118);
            }
        }


Não estou conseguindo guardar a posição dele, no primeiro click tudo ok, mas do segundo em diante e muda a posição Y tipo se era 150 e joga o tamnho do Panel + 150.

Rumao
   - 02 out 2012

Então galera desculpe, estou usando C# for Windows Forms.

Washington Morais
   - 02 out 2012

Tá mais fácil ainda. Existe uma extensão para o VisualStudio chamada Collapsible Panel for Windows Forms.
Voce pode baixar ele no endereço abaixo:

http://visualstudiogallery.msdn.microsoft.com/40B89FC7-80FA-4E95-B707-506084F51D6B

É grátis.

Abraços

___________________
Washington Morais
MCP / MCTS

Washington Morais
   - 02 out 2012

Só mais uma dica. Configure a propriedade Anchor do botão. Ela indica se o botão deve acompanhar o controle ou não. Configure ele como Top e Left se não me engano.

Abraços

___________________
Washington Morais
MCP / MCTS

Rumao
   - 02 out 2012

Já está com Top/Left

Subi meu teste para darem uma olhada, isso se puderem claro.
Segue link:
#Código

http://adilsonrumao.com/atm/appgerencial.rar


Obs: passei antivirus antes de subir.

Rumao
   - 02 out 2012

Nossa que burrice ehm..
Valeu galera, fecho era problema de BIOS mesmo.

Muito obrigado pela ajuda.
#Código

private void button1_Click(object sender, EventArgs e)
        {
            if (panel1.Visible == false)
            {
                panel1.Visible = true;
                button1.Location = new Point(button1.Location.X, button1.Location.Y + 118); O erro estava nesta posição

            }
            else
            {
                panel1.Visible = false;
                button1.Location = new Point(button1.Location.X, button1.Location.Y - 118);
            }
        }

Washington Morais
   - 02 out 2012

hehehe... Que bom que resolveu.
Não se preocupe que o problema de BIOS afeta a todos sem exceção. :)

Abraços

___________________
Washington Morais
MCP / MCTS