列表框上工具提示的奇怪行为

时间:2010-10-18 06:13:34

标签: c# winforms listbox tooltip

我是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;
}

我的问题是,当应用程序第一次启动时,它就像一个魅力......当移动我的鼠标时,工具提示跟随它并适应悬停的项目。细

但是玩了一会儿(几秒钟),或者用鼠标光标离开列表框,再次进入列表框时,我再也没有任何工具提示......我玩了几秒钟然后我再次得到一个,但工具提示不再跟随光标......我的第一个猜测是它是一个“显示”行为,但我无法找到如何纠正它......

你们有什么想法吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

而不是

MyToolTip.Show(l_sMyItemString, this); 

尝试

MyToolTip.SetToolTip(this, l_sMyItemString);