首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将自定义控件设置为按钮或标签的ToolTip?

如何将自定义控件设置为按钮或标签的ToolTip?
EN

Stack Overflow用户
提问于 2017-03-07 10:40:02
回答 1查看 542关注 0票数 1

我已经创建了自己的自定义控件,并且需要将此自定义控件作为标签或按钮的ToolTip。

但我无法找到将自定义控件设置为ToolTip的方法。

任何人请帮助我将自定义控件设置为ToolTip。

注意:我不需要在控件的mouse_hover事件中显示自定义控件的解决方案。

请建议我的想法,使自定义控制作为默认的ToolTip在标准方式。

致以敬意,

阿马尔·拉杰

EN

回答 1

Stack Overflow用户

发布于 2017-03-07 13:34:46

我想你已经知道要重写这个画图事件了,所以我不会再讨论这个问题了。如果您想要更复杂的东西,那么从ToolTip控件派生出来的为您的目的扩展它就没有什么意义了,因为您会很快地遇到限制。

您应该做的是通过重用原始控件中的一些重要位来实现您自己的ToolTip控件。如果你觉得冒险,你可以按照这些步骤开始。我将从现在起将您的自定义控件称为工具提示:

  1. 如果要为使用工具提示的每个控件显示自定义文本或其他内容,则需要在类中实现IExtenderProvider下面是更多关于这一点。
  2. 您需要跟踪使用工具提示的控件以及为它们设置的自定义值。在内部,Windows工具提示为此使用了一个HashTable。Key是显示工具提示的控件,值是工具提示文本(或其他要绑定到工具提示的内容)。
  3. 如果您想要显示多个字符串(标题、描述、图像等),则可以有多个HashTables。
  4. 当将工具提示添加到控件时,订阅鼠标事件(输入、移动、离开)以跟踪何时显示工具提示。如果希望在显示控件之前有延迟,则需要使用内部计时器来跟踪时间。
  5. 您很可能希望工具提示扩展到主窗体的边界之外。您可以将工具提示包装在无头窗体或α混合形式中,以允许矩形以外的其他形状。

这些都是非常普遍的第一步。实际上,还有很多事情要做。我已经有几年没有实现我的自定义ToolTip控件了,所以我可能忘记了一些重要的东西。但是,如果您花一些时间仔细研究Windows窗体的ToolTip类的代码,您将很好地了解窗帘后面发生了什么。

我本人还没有复习过代码,但从评分来看,本文也将给您一个很好的起点:具有标题、多行内容和图像的ToolTip。它在VB.NET中,但您可以通过使用泰勒克转换器或任何其他方式轻松地将其转换为C#。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42646053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档