cap*_*ssj 3 .net vb.net tooltip visual-studio winforms
使用VB.NET 2008桌面项目,我在Form_Load事件上创建了一个简单的工具提示,并将其附加到表单上的按钮.当用户将鼠标悬停在按钮上但在30秒后超时(我使用弹出延迟设置等)时看起来很棒.但是一旦它淡出,第二次用户将鼠标悬停在按钮上,工具提示就不会显示出来.几乎就像它死于自然死亡!有想法该怎么解决这个吗?
事实证明,如果第一个提示超时,ToolTip组件将不会再次显示提示.
我认为这是一个"功能",而不是一个错误,但我同意这不是许多人的预期行为.据报道,微软认为"投资修复它是一个极端的案例".
这个类似问题的答案提出了一些可能的解决方法,虽然我没有亲自尝试过任何一个,因为我从来没有需要一个显示时间超过它的超时工具提示.
我建议您尝试的第一个解决方法是Kevin的答案:将ToolTip组件的Active属性设置为False,然后在MouseEnter每个要显示工具提示的控件的情况下返回True .这将基本上"重新启动"组件并覆盖"功能",导致它在第一次超时后不再显示第二次.
在答案中提出的一些其他建议实现了相同的结果略微不同(并且更加无聊):通过每次用户将鼠标移动到控件上时创建新 ToolTip组件.真的没有理由这更好,或者当上述建议没有时它会起作用.
至于为什么工具提示仅在30秒后超时,实际的最大超时大约是32秒..NET Framework提供的组件只是Win32 ToolTip的包装器,文档显示它是看似任意限制的来源.超时值被指定为带符号的16位值,它接受的最大值仅为32767,转换为仅超过32秒的延迟.Raymond Chen还发布了一篇关于这种确切行为的博客文章.
| 归档时间: |
|
| 查看次数: |
3060 次 |
| 最近记录: |