我尝试将工具提示应用到toolstripbutton,但它一直给我这个错误: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条答案
按热度按时间jaql4c8m1#
ToolStripButton
派生自ToolStripItem
,它具有ToolTipText
属性。如前所述,
ToolStripItem
并不是从Control
类派生的,因此提供了自己的实现来呈现工具提示。This post可以帮助您自定义工具提示。pnwntuvh2#
更新:在Winform项目中尝试了这个方法,但没有成功,我在SO上搜索了其他线程,这可能对你有帮助:
Showing a tooltip on a non-focused ToolStripItem
第一种方法的问题是你不能直接将其设置为按钮,它不是从Control继承的,除非你在条带上而不是在按钮上,否则工具提示不会显示。
其他地方
我试着做同样的事情,并确定这将是相当具有挑战性的,不值得。原因是,在内部,.NET代码是专门设计的,只有在窗口处于活动状态时才显示工具提示-他们在Win32级别检查这一点,所以很难伪造代码。
用户从来没有接受任何答案为真,而且乍一看,这可能是一个很大的工作,很少的回报。这是一个从零开始的项目吗?如果是这样的话,也许你可以使用WPF来做,它比winforms灵活得多。
kyks70gy3#
奇怪的是,toolstripbutton类不像其他System.Windows.Formsgui组件那样继承Control类。也许在您的代码中,
e.AssociatedControl
应该与System.Windows.Forms控件一起使用。简而言之,我认为微软还没有决定为条形控件提供一个工具提示。我不知道你的确切要求,但对于一些可能点击的替代方案,请参阅this link。lb3vh1jj4#
这是一个老问题,但答案是here:
1.将按钮的ShowItemToolTips属性设置为true。
1.将按钮的ToolStripButton.AutoToolTip属性设置为false。