我正在尝试将工具提示应用于工具条按钮,但它一直给我这个错误:
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);
}
}
}
答案 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。