1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB.NET | Form.Enable = False -> Desaparecem Labels

Discussão em 'Programação' iniciada por diog0silva, 30 de Abril de 2009. (Respostas: 11; Visualizações: 2024)

  1. diog0silva

    diog0silva Power Member

    Boas.

    Porque é que cada vez que passo a propriedade Enable de um Form para False, as Labels que se encontram dentro de Panel's ou de RectangleShape's ficam invísiveis?
     
  2. iznougud

    iznougud I quit My Job for Folding

    Testei agora mesmo no VB.Net express 2005 e funciona tudo bem. As labels mudam a cor para cinzento com deviam.

    Esperimenta mudar a ForeColor de uma para Black em vez do normal. Pode ser que o teu esquema de cores coincida com o Background do teu form quando esta disabled.
     
  3. diog0silva

    diog0silva Power Member

    Tipo, eu uso o Panel como cabeçalho do form (não sei se será com um Panel a melhor maneira de o fazer lol). O background do Panel esta a Black, depois tenho labels a Lime e a White.

    Depois tenho várias outras labels no form, mas fora do Panel. Estas sim, quando ponho o form "Disable" passam para cinzento. Mas as que estão dentro do Panel desaparecem lol. Depois, quando o form volta a ficar "Enable" elas voltam a aparecer.

    Eu tou a usar o Visual Studio 2008.
     
    Última edição: 1 de Maio de 2009
  4. ribeiro55

    ribeiro55 Power Member

    Acabei de testar no VB2K8, nas condições que acusas, e corre tudo como deveria correr.
    Tens a certeza que não mexes algures com a visibilidade desses labels ?
    Exprimenta tirá-lo do painel e ver o que acontece fora.
     
  5. diog0silva

    diog0silva Power Member

    Se eu tirar os Labels do Panel, eles não desaparecem. Mas se os puser lá, desaparecem lol
     
  6. iznougud

    iznougud I quit My Job for Folding

    Tenta imitar isso num projecto a parte e poe no rapidshare ou isso... Usas o XP ou o Vista normal ou tens algum Theme tipo BlackXp ou isso?
     
  7. diog0silva

    diog0silva Power Member

  8. iznougud

    iznougud I quit My Job for Folding

    Ja testei aqui, as labels nao desaparecem. O que acontece e que a cor do texto Disabled fica a Preto, independentemente da cor que definires como ForeColor. Como tens o Fundo a Preto fica tudo igual.

    Isto acontece porque o .Net quando passas algo a Disabled o que faz é pegar na cor de fundo do painel (neste caso), calcula uma cor ligeiramente mais escura e atribui a todos os controlos desse painel essa nova cor.

    Preto mais escuro é preto :D por isso da a sensação que desaparece.

    A unica solução é nao usares o Preto como Backcolor ou entra criares uma LabelCustom e fazes o Override da função OnPaint para definires tu a cor a usar quando esta Disabled...
     
  9. diog0silva

    diog0silva Power Member

    Como se criar uma LabelCustom? lol
     
  10. iznougud

    iznougud I quit My Job for Folding

  11. diog0silva

    diog0silva Power Member

    Reparei agora numa coisa. Quando está um form aberto e carregamos num botão que desencadeia uma MsgBox, o form não fica "Disable" mas não lhe conseguimos mexer. Só lhe conseguimos mexer quando fechamos a MsgBox. Isso servia perfeitamente! lol Que método é?
     
  12. diog0silva

    diog0silva Power Member

    Resolvido. O método ShowDialog deixa os outros forms "Disable", mas com as cores certas :D
     

Partilhar esta Página