Pergunta

Eu tenho a seguinte estrutura em um formulário do Windows:

Form (AutoResize = true, AutoSizeMode = GrowAndShrink)
    FlowLayout (AutoResize = true, AutoSizeMode = GrowAndShrink)
        GroupBox
        GroupBox
        GroupBox
    StatusStrip

Minha expectativa é que a alteração da visibilidade das caixas de grupo deve fazer com que a janela se encaixe em um novo tamanho para recuperar o espaço vazio ou acomodar novos controles. No entanto, isso não acontece automaticamente. Se eu minimizar a bandeja e restaurar o formulário (ou seja, alternar visível, ShowIssaskBar, WindowState = Normal/Minimized), então, quando reaparece, ele terá atualizado corretamente. Outra coisa que desencadeia é uma atualização para o conteúdo em um statusstrip na parte inferior da página (mostrando um rótulo, alterando uma barra de progresso etc.). Eu tentei várias combinações inspiradas em vodoo de invalidação/atualização/onResize etc., mas sinto que estou perdendo algo um pouco mais fundamental e espero que alguém possa ver a falha óbvia no que estou descrevendo.

Todas as minhas atualizações para os widgets no formulário são invocadas/invocadas, se isso for relevante.

Foi útil?

Solução

Não posso reproduzir esse problema com um formulário de teste simples que usa suas configurações de layout e propriedades. A área do cliente do formulário é encolhida na inicialização e cresce conforme necessário para tornar a caixa de grupo visível quando eu definir sua propriedade visível como TRUE.

Você pode solicitar um recálculo de layout explícito com o método performayout ().

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top