如何在工具条按钮上使用工具提示

问题描述 投票:0回答:4

我正在尝试将工具提示应用于工具条按钮,但它一直给我这个错误:

Operator '==' cannot be applied to operands of type 'System.Windows.Forms.Control' and 'System.Windows.Forms.ToolStripButton'

有任何关于如何解决这个问题的线索吗?

更新:

private void toolTip1_Popup(object sender, PopupEventArgs e)
{
    if (e.AssociatedControl == tBtn1)
    {
        using (Font f = new Font("Tahoma", 9))
        {
            e.ToolTipSize = TextRenderer.MeasureText(
                toolTip1.GetToolTip(e.AssociatedControl), f);
        }
    }
}
c# winforms controls tooltip
4个回答
4
投票

ToolStripButton
源自
ToolStripItem
,它具有
ToolTipText
属性。

如前所述,

ToolStripItem
并非派生自
Control
类,因此提供了自己的实现来呈现工具提示。 这篇文章可能会帮助您自定义工具提示。


0
投票

更新:在 Winform 项目中尝试此操作但没有成功后,我搜索了 SO 上的其他线程,这可能对您有帮助:

在非焦点 ToolStripItem 上显示工具提示

第一个的问题是你不能直接将它设置到按钮上, 它不继承自 Control,并且工具提示不会显示,除非 您已越过条带,但未越过按钮。

其他地方

我试图做同样的事情并决定它会是 相当具有挑战性,而且不值得。原因就在于,在内部, .NET 代码专门设计为仅在以下情况下显示工具提示: 窗口处于活动状态 - 他们正在 Win32 级别检查此窗口,因此它 很难伪造代码。

用户从未接受过任何答案的真实性,而且乍一看,这可能是大量工作却回报甚少。这是一个从头开始的项目吗?如果是这样,也许你可以使用 WPF 来完成,它比 winform 灵活得多。


0
投票

奇怪的是,与其他 System.Windows.Forms gui 组件不同,toolstripbutton 类并不继承自 Control 类。也许在您的代码中

e.AssociatedControl
旨在与 System.Windows.Forms 控件一起使用。简而言之,我认为微软还没有决定为条形控件提供工具提示。我不知道您的确切要求,但对于可能点击的替代方案,请参阅此链接


0
投票

这是老问题,但答案是这里

  1. 将按钮的 ShowItemToolTips 属性设置为 true。
  2. 将按钮的 ToolStripButton.AutoToolTip 属性设置为 false。

ToolStripButton 的 AutoToolTip 属性默认为 true。 ToolStripDropDownButton 和 ToolStripSplitButton。

默认情况下,ToolStripButton 使用其 Text 属性作为工具提示文本。使用此过程可在 ToolStripButtonToolTip 中显示自定义文本。

© www.soinside.com 2019 - 2024. All rights reserved.