Aplicação em C# com event handling

Então é esse o problema. Se não houver nenhum inconveniente, devias usar sempre o mesmo conjunto de labels e botões para a apresentação dos detalhes. E esses labels/botões podem ser colocados durante o design.


Não entendi a parte do desing...
Crio uma label no desing e depois de criar o array de labels digo que lbl_design.Text = lbl_array.ToString();

Ups...
Coloquei como argumento no remover_controls o panel mas apagaou-me tudo LOLOLOL
Não tou a conseguir é que ele veja se é apenas Labels...

Código:
[SIZE=2][COLOR=#0000ff][COLOR=deepskyblue]public[/COLOR][/COLOR][/SIZE][COLOR=deepskyblue][SIZE=2]void[/SIZE][/COLOR][SIZE=2][COLOR=#000000] [COLOR=white]remover_control[/COLOR][COLOR=white]([/COLOR][/COLOR][/SIZE][SIZE=2][COLOR=#008080]Panel[/COLOR][/SIZE][SIZE=2][COLOR=white]panel)[/COLOR]
{
[/SIZE][SIZE=2][COLOR=deepskyblue]foreach[/COLOR][/SIZE][SIZE=2] ([/SIZE][SIZE=2][COLOR=#008080]Control[/COLOR][/SIZE][SIZE=2] c [COLOR=deepskyblue]in[/COLOR][/SIZE][SIZE=2] obterControls(panel))
c.Parent.Controls.Remove(c);
}
 
 
No obterControls n mexi em nada:
 
[SIZE=2][COLOR=#0000ff][COLOR=deepskyblue]private[/COLOR][/COLOR][/SIZE][SIZE=2][COLOR=#008080]List[/COLOR][/SIZE][SIZE=2][COLOR=white]<[/COLOR][/SIZE][SIZE=2][COLOR=#008080]Control[/COLOR][/SIZE][SIZE=2][COLOR=white]> obterControlos([/COLOR][/SIZE][SIZE=2][COLOR=#008080]Control[/COLOR][/SIZE][SIZE=2][COLOR=white]parent)[/COLOR]
{
[/SIZE][SIZE=2][COLOR=#008080]    List[/COLOR][/SIZE][SIZE=2]<[/SIZE][SIZE=2][COLOR=#008080]Control[/COLOR][/SIZE][SIZE=2]> l = [/SIZE][SIZE=2][COLOR=deepskyblue]new[/COLOR][/SIZE][SIZE=2][COLOR=#008080]List[/COLOR][/SIZE][SIZE=2]<[/SIZE][SIZE=2][COLOR=#008080]Control[/COLOR][/SIZE][SIZE=2]>();
[/SIZE][SIZE=2][COLOR=deepskyblue]    foreach[/COLOR][/SIZE][SIZE=2] ([/SIZE][SIZE=2][COLOR=#008080]Control[/COLOR][/SIZE][SIZE=2] c [/SIZE][SIZE=2][COLOR=deepskyblue]in[/COLOR][/SIZE][SIZE=2] parent.Controls)
    {
[/SIZE][SIZE=2][COLOR=deepskyblue]        if[/COLOR][/SIZE][SIZE=2] (c [/SIZE][SIZE=2][COLOR=deepskyblue]is[/COLOR][/SIZE][SIZE=2][COLOR=#008080]Label[/COLOR][/SIZE][SIZE=2])
        {
            l.Add(c);
            l.AddRange(obterControlos(c));
        }
    }
[/SIZE][SIZE=2][COLOR=deepskyblue]    return[/COLOR][/SIZE][SIZE=2] l;
}
[/SIZE][/SIZE]

Acho que o melhor a fazer é criar tudo dinamicamente dentro do pnl_detalhes.. Assim ele apaga e depois cria tudo outra vez... Tinha criado em desgn uns botoes e labels mas assim apaga tudo. Vou fazer agora tudo dinamicamente, espero que dê certo :)
 
Última edição pelo moderador:
Não entendi a parte do desing...
Crio uma label no desing e depois de criar o array de labels digo que lbl_design.Text = lbl_array.ToString();

Não, a ideia era criar apenas 1 label e 1 botão (ou mais, se for necessário), e usar sempre o mesmo label e o mesmo botão para todas as mesas. Assim não precisas de estar a criar e inserir um novo label e um novo botão por cada vez que apresentas os detalhes de uma mesa, basta alterar o conteúdo da label e do botão que foram criados durante o design.
Ups...
Coloquei como argumento no remover_controls o panel mas apagaou-me tudo LOLOLOL
Estranho, testei aqui e funciona bem... Isto é, apaga todos os controls que estão dentro do control que é passado por argumento à rotina remover_control. Nesse caso, apagaria todos os controls que estão dentro do pnl_detalhes.
Não tou a conseguir é que ele veja se é apenas Labels...
É só alterar esta parte:
Código:
if (c is Label)
    l.Add(c);
l.AddRange(obterControlos(c));
Também testei.
 
Última edição:
Obrigada :)

declarei uma labels publicas para os titulos,
fiz tudo dinamicamente e qgora ja esta tudo ok... ufa :)

Tava a apagar tudo e depois cria-se tudo novamente... so espero que n se torne pesado, pk depois terei k fazer um grafico com as mesas que mais lucro deram LOLOL

Mãezinha...

Muito obrigada pela ajuda! não ia conseguir fazer sem voces :)
 
Back
Topo