我是C#的新手,我想在列表框中启用工具提示。我的愿望是能够显示不同的工具提示,具体取决于列表框中的悬停项目(标准列表框的行为是显示一个单独的工具提示,无论哪个项目悬停)...
我设法编写了以下代码:
private void MyInheritedListBox_MouseMove(object _sender, MouseEventArgs _event)
{
int itemIndex = -1;
itemIndex = this.IndexFromPoint(new Point(_event.X, _event.Y));
Console.WriteLine(_event.X.ToString() + " - " + _event.Y.ToString());
if (itemIndex >= 0 && itemIndex != currentHoveredIndex)
{
string l_sMyItemString = (string)this.Items[itemIndex];
MyToolTip.Show(l_sMyItemString, this);
currentHoveredIndex = itemIndex;
}
if (currentHoveredIndex == -1)
{
MyToolTip.Hide(this);
}
}
private void MyInheritedListBox_MouseLeave(object sender, EventArgs e)
{
currentHoveredIndex = -1;
}
我的问题是,当应用程序第一次启动时,它就像一个魅力......当移动我的鼠标时,工具提示跟随它并适应悬停的项目。细
但是玩了一会儿(几秒钟),或者用鼠标光标离开列表框,再次进入列表框时,我再也没有任何工具提示......我玩了几秒钟然后我再次得到一个,但工具提示不再跟随光标......我的第一个猜测是它是一个“显示”行为,但我无法找到如何纠正它......
你们有什么想法吗?
提前致谢!
答案 0 :(得分:0)
而不是
MyToolTip.Show(l_sMyItemString, this);
尝试
MyToolTip.SetToolTip(this, l_sMyItemString);