1

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

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

3 回答 3

4

ToolStripButton派生自ToolStripItem它有一个ToolTipText属性。

正如已经解释的那样,ToolStripItem它不是从Control类派生的,因此提供了自己的实现来呈现工具提示。这篇文章可以帮助您自定义工具提示。

于 2012-06-25T15:43:01.397 回答
0

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

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

第一个问题是您不能直接将其设置为按钮,它不会从 Control 继承,并且工具提示不会显示,除非您在条上而不是按钮上。

别处

我试图做同样的事情,并确定这将非常具有挑战性并且不值得。原因是在内部,.NET 代码专门设计为仅在窗口处于活动状态时才显示工具提示 - 他们在 Win32 级别检查此内容,因此很难伪造代码。

用户从来没有接受过任何正确的答案,乍一看,这可能是很多工作却很少得到回报。这是一个从头开始的项目吗?如果是这样,也许你可以使用 WPF 来完成,它比 winforms 灵活得多。

于 2012-06-25T15:01:13.330 回答
0

奇怪的是,toolstripbutton类不像其他 System.Windows.Forms gui 组件那样继承自 Control 类。也许在您的代码e.AssociatedControl中旨在与 System.Windows.Forms 控件一起使用。简而言之,我认为 MS 还没有决定为条形控件提供工具提示。我不知道您的确切要求,但对于一些可能点击的替代方案,请参阅此链接

于 2012-06-25T15:38:25.330 回答