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

Nazgulled

Redimensionar user control após adiciona-lo a um form usando a altura do mesmo

2 mensagens neste tópico

Estou a criar um user control (como pode sr visto na área dos projectos) mas estou com um pequeno problema. Quando arrasto esse User Control da ToolBox para um Form, gostava que a sua altura fosse automaticamente redimensionada usando a altura do Form em que foi colocado e lhe subtraisse, por exemplo, 50pixeis. Ou seja, o Form tem 300 pixeis, eu arrasto o controlo para o Form e gostava que ele ficasse com 250pixeis de altura.

Não estou a ver como nem onde (evento/método) para que o controlo seja automaticamente redimensionado assim que for adicionado ao Form, usando a altura do mesmo.

Ideias?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, a solução que arranjei foi fazer um override ao evento OnLocationChanged() do meu user control e depois lá dentro perguntar se estou em DesignMode e perguntar se determinada variável é falsa, se for verdadeira significa que o código já foi executado uma vez e já chega.

O código é o seguinte:

protected override void OnLocationChanged(EventArgs e)
{
    base.OnLocationChanged(e);

    if (DesignMode && !this.ucSizeChanged) {
        base.Height = base.ParentForm.ClientSize.Height - 37;
        this.ucSizeChanged = true;
    }
}

Mas eu não gosto muito desta solução, não gosto de fazer isto neste evento. Estive à procura de outros, mas não consigo encontrar nenhum que seja invocado logo após o meu user control ter sido adicionado ao form. Ninguém tem ideias? Esta solução funciona, até que ponto não sei, mas para já funciona. Só que eu não gosto muito dela, não tem muita lógica, penso eu lol... Se alguém tiver ideias diferentes...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora