我可以在.NET Windows窗体窗口中为工具提示设置无限的AutoPopDelay吗?

Han*_*man 8 .net c# tooltip winforms

我要求不要自动隐藏标准的.NET Windows Forms工具提示 - 也就是说,我需要它们保持可见,直到鼠标移出具有工具提示的控件.我想避免使用工具提示对所有控件使用特定的MouseEnter和MouseLeave事件.如果他们能够解决问题,我很高兴听到第三方解决方案.

Jim*_*imi 13

由于它已经无数次发布并且早期从.NET Framework中已知,因此您无法将AutoPopDelay时间设置为高于Int16.MaxValue(即32767)并使其正常工作.使用工具提示Show()方法会得到相同的结果.任何高于32767的值都会使定时器复位为5000 ms.

即使尝试将AutomaticDelay设置为导致AutoPopDelay值高于32767的值,也会导致工具提示无法工作.此外,使用StopTimer()方法不会产生任何积极的结果.

我在显示具有无限超时的工具提示时成功的唯一方法是使用工具提示Show()方法传递显示的位置.tooltip.Show(text, control, position).总之,工具提示控件具有我在控件中遇到的最奇怪的行为,并且关于设置延迟时间的文档非常具有误导性.


pan*_*nny 11

我正在寻找解决问题的方法

  1. 弹出气球消失得太快,不允许我阅读其内容
  2. 当徘徊在该区域时,弹出气球不再出现.

我在论坛下面的答案,这并不解决Problem2发现,但让我阅读的文本比我其值设置为我所需要的时间更多的32766,因此-在我看来-一种"变通" :

实际上,我发现我的问题是我分配的值高于32767(32768及更高的值会产生5秒的效果)真的很奇怪,因为AutoPopDelay应该以整数(32位)作为参数,而32767确实是签名16位......

但我必须承认,它仍然很糟糕......

但将其设置为32000(32秒)似乎效果更好.不知道为什么这是,但也许它可以帮助某人.

  • @TheMuffinMan'WinForms已经死了'.那是一个大胆的主张.您的具体建议是取代它们?当然不是Win8应用程序.WPF?工具提示在那里更具功能性吗? (5认同)
  • @Dan显然WPF取代了它. (2认同)

CSh*_*per -1

将 ToolTipService.ShowDuration 附加属性设置为 int.MaxValue:

<Button 
  Height="23" Width="75"
  Content="Click Me" 
  ToolTip="My ToolTip" ToolTipService.ShowDuration="2147483647" 
/>
Run Code Online (Sandbox Code Playgroud)