如何将自定义控件设置为按钮或标签的工具提示



我已经创建了自己的自定义控件,我需要将此自定义控件作为标签或按钮的工具提示。

,但我找不到将自定义控件设置为工具提示的方法。

任何人,请帮助我将自定义控件设置为工具提示。

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

请建议我以标准方式将自定义控制作为默认工具提示。

问:

amal raj

我假设您已经知道覆盖油漆事件,所以我不会参加。如果您想要更复杂的东西,从ToolTip控件中衍生以将其扩展为您的目的是没有意义的,因为您会很快遇到限制。

您应该做的是通过重复原始的一些重要位来实现自己的工具提示控制。如果您觉得冒险,可以遵循以下步骤开始。从现在开始,我将把您的自定义控件称为 tooltip

  1. 如果要显示使用工具提示的每个控件的自定义文本或其他内容,则需要在类中实现iextenderProvider。这是关于它的更多信息。
  2. 您需要跟踪使用工具提示的控件以及为其设置的自定义值。在内部,Windows Forms Tooltip用于此目的。关键是显示您的工具提示和值的控件是工具提示文本(或您想绑在工具提示上的其他内容)。
  3. 如果您想显示多个字符串(标题,描述,图像等),则可以具有多个Hashtables。
  4. 将工具提示添加到控件中时,请订阅鼠标事件(输入,移动,离开),以跟踪何时显示工具提示。如果您想在显示控件之前有延迟,则需要使用内部计时器来跟踪时间。
  5. 您很可能会希望该工具提示扩展到主形式的边界之外。您可以将工具提示包裹在无标题或α混合形式中,以允许除矩形以外的其他形状。

这些是非常普遍的第一步。实际上,还有很多要做的事情。自从我实施自定义工具提示控件以来已经有几年了,所以我可能会忘记一些关键的东西。但是,如果您花一些时间围绕Windows Forms的Tooltip类的代码进行戳戳,那么您将对窗帘后面发生的事情有一个很好的了解。

我尚未亲自审查过代码,但是从评分来看,本文也将为您提供一个很好的起点:具有标题,多行内容和图像的工具提示。它在vb.net中,但您可以使用Telerik的转换器或任何其他。

,可以轻松地将其转换为C#。

最新更新