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

Nazgulled

[.NET/VB/C#] Procura-se controlo DECENTE para ToolTips em forma de balão

5 mensagens neste tópico

Os ToolTips do .NET 2.0 suckam muito, não funcionam como deve ser (e não vou entrar em pormenores que não interessa para nada) e para além do mais têm bugs parvos para os quais até já encontrei posts em outros fórums a falar do mesmo e a solução encontrada para dar a volta ao problema foi a mesma que eu pensei. Um outro pormenor interessante é que funcionam como bem lhes apetece... O que quero dizer com isto é que no Vista, quando lhes apetece, usam o aspecto dos novos ToolTips do Vista, com anti-aliasing e tal, mas quando não lhes apetece, têm um aspecto mais feio. Mudam entre aparências sem nenhuma razão óbvia.

Ou seja, estou a precisar de um controlo/componente para .NET que me permita ter ToolTips decentes, leia-se, com bom aspecto (tipo Vista ou Office) em forma de balão com suporte a título, mensagem e ícone para usar nas minhas aplicações. De preferência algo que não seja a pagantes... Tanto faz se é distribuído com código ou só o binário, desde que faça aquilo que quero e nem interessa se foi feito em VB.NET ou C#, porque qualquer um serve (daí eu ter colocado este tópico aqui) como vocês sabem.

Alguém tem conhecimento de algum?

Já andei a pesquisar bastante mas não encontrei rigorosamente nada de jeito...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um deles já enunciei, que só acontece no Vista por razões óbvias.

Depois, eu não consigo por aquilo a funcionar da maneira que quero, ou seja, a mostrar quando eu quero e não quando o rato passa por cima do controlo X. Conseguir ate consigo mas... A ideia é ter uma TextBox para introduzir nomes de ficheiros e o Windows não aceita determinados caracteres e eu apenas quero mostrar um ToolTip desses com com mensagem de erro. Mas quando utilizador clica numa tecla que seja caractere permitido, quero que o ToolTip desapareça mas ao voltar a pressionar num caractere ilegal, que volte aparecer. Isto funciona na maior parte das vezes mas quando lhe apetece, não aparece sem razão aparente...

Terceiro, a minha janela está "encostada" à borda do lado direito do ecrã e o texto do ToolTip é maior que a janela da minha aplicação, isto faz com que o ToolTip não aponte (aquele pontinha que aponta para o respectivo controlo) correctamente para o controlo correcto, fica a apontar para o nada e não forma de o corrigir.

O problema que falei que mais gente se deparou é que em certas situações (desconhecidas) a primeira aparição do ToolTip aponta sempre para baixo do respectivo controlo, apenas nas seguintes (mas às vezes lá se lembra e volta a apontar mal) aponta correctamente para o controlo. A forma de resolver isto foi fazer um .Show() do ToolTip com 0ms de duração sem qualquer mensagem e de seguida fazer o .Show() com os parâmetros correctos, mas é uma solução parva para algo que nem devia acontecer.

No fundo é isto...

E sim, já procurei no CodeProject e até me admira não existir nada.

E por decente apenas me refiro a um controlo simples que faça uns ToolTips em balão simples. Ou seja, com título, texto principal e pequeno ícone (tudo configurável) tal como é o próprio controlo ToolTip do .NET 2.0 mas que funcione correctamente tanto no XP como no Vista. No XP deve funcionar bem, mas no Vista, como já disse, ele não utiliza (só quando lhe apetece) a nova aparência para ToolTips em balão que foi introduzida com o sistema. Só queria algo que utilizasse o look do Vista quando no Vista e o look do XP quando no XP, com anti-aliasing e com todos os problemas acima mencionados corrigidos. Coisa que não existe segundo aquilo que eu já procurei, que foi bastante, mas pode-me ter escapado algo, por isso coloquei aqui...

Algo que queria tentar a ver se resolvia o problema (o que duvido) era usar as APIs do Windows para apresentar ToolTips, porque antes do .NET 2.0 já se fazia este tipo de ToolTips em balão (já existiam no XP) mas com a API. Só que não consigo encontrar código apresentável para puder testar se com a API resolvia o problema...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um deles já enunciei, que só acontece no Vista por razões óbvias.

Depois, eu não consigo por aquilo a funcionar da maneira que quero, ou seja, a mostrar quando eu quero e não quando o rato passa por cima do controlo X. Conseguir ate consigo mas... A ideia é ter uma TextBox para introduzir nomes de ficheiros e o Windows não aceita determinados caracteres e eu apenas quero mostrar um ToolTip desses com com mensagem de erro. Mas quando utilizador clica numa tecla que seja caractere permitido, quero que o ToolTip desapareça mas ao voltar a pressionar num caractere ilegal, que volte aparecer. Isto funciona na maior parte das vezes mas quando lhe apetece, não aparece sem razão aparente...

Terceiro, a minha janela está "encostada" à borda do lado direito do ecrã e o texto do ToolTip é maior que a janela da minha aplicação, isto faz com que o ToolTip não aponte (aquele pontinha que aponta para o respectivo controlo) correctamente para o controlo correcto, fica a apontar para o nada e não forma de o corrigir.

O problema que falei que mais gente se deparou é que em certas situações (desconhecidas) a primeira aparição do ToolTip aponta sempre para baixo do respectivo controlo, apenas nas seguintes (mas às vezes lá se lembra e volta a apontar mal) aponta correctamente para o controlo. A forma de resolver isto foi fazer um .Show() do ToolTip com 0ms de duração sem qualquer mensagem e de seguida fazer o .Show() com os parâmetros correctos, mas é uma solução parva para algo que nem devia acontecer.

No fundo é isto...

E sim, já procurei no CodeProject e até me admira não existir nada.

E por decente apenas me refiro a um controlo simples que faça uns ToolTips em balão simples. Ou seja, com título, texto principal e pequeno ícone (tudo configurável) tal como é o próprio controlo ToolTip do .NET 2.0 mas que funcione correctamente tanto no XP como no Vista. No XP deve funcionar bem, mas no Vista, como já disse, ele não utiliza (só quando lhe apetece) a nova aparência para ToolTips em balão que foi introduzida com o sistema. Só queria algo que utilizasse o look do Vista quando no Vista e o look do XP quando no XP, com anti-aliasing e com todos os problemas acima mencionados corrigidos. Coisa que não existe segundo aquilo que eu já procurei, que foi bastante, mas pode-me ter escapado algo, por isso coloquei aqui...

Algo que queria tentar a ver se resolvia o problema (o que duvido) era usar as APIs do Windows para apresentar ToolTips, porque antes do .NET 2.0 já se fazia este tipo de ToolTips em balão (já existiam no XP) mas com a API. Só que não consigo encontrar código apresentável para puder testar se com a API resolvia o problema...

Estranho...comigo as tooltips do 2.0 funcionam perfeitamente e não consigo reproduzir os problemas que estás a ter. :s

Qual o esforço de migrares a tua solução para WPF?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Os problemas que eu estava a ter estão mais ou menos resolvidos. Não me perguntem como, mas o problema parece estar mais ou menos resolvido...

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