如何在toolstripbutton上使用工具提示

时间:2012-06-25 14:57:45

标签: c# winforms controls tooltip

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

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);
        }
    }
}

3 个答案:

答案 0 :(得分:4)

ToolStripButton派生自ToolStripItem,其ToolTipText属性。

如前所述,ToolStripItem并非来自Control类,因此提供了自己的实现来呈现工具提示。 This帖子可以帮助您自定义工具提示。

答案 1 :(得分:0)

更新:在Winform项目中尝试这个并且没有成功之后,我搜索了SO上的其他线程,这可能对您有所帮助:

Showing a tooltip on a non-focused ToolStripItem

  

第一个问题是你无法直接将它设置为按钮,   它不会从Control继承,除非工具提示不会显示   你已经超过了地带,但没有通过按钮。

别处

  

我试图做同样的事情,并确定它会是   非常具有挑战性,不值得。原因是在内部,   .NET代码专门设计为仅显示工具提示   窗口是活动的 - 他们正在Win32级别检查它,所以它   很难伪造代码。

用户从未接受任何答案为真,并且一眼就看出这可能是一项很少的奖励。这是一个从零开始的项目吗?如果是这样,也许你可以使用WPF来做到这一点,它比winforms更灵活。

答案 2 :(得分:0)

奇怪的是,与其他System.Windows.Forms gui组件不同,toolstripbutton类不会从Control类继承。也许在您的代码中e.AssociatedControl意味着与System.Windows.Forms控件一起使用。简而言之,我认为MS还没有决定为条带控件提供工具提示。我不知道您的具体要求,但对于某些可能会点击的替代方法,请参阅this link