// auf dem Formular muss sich noch ein ToolTip namens "toolTip" befinden
// letztes SubItem unter der Maus
private ListViewItem.ListViewSubItem _currentsubitem = null;
// Offset für Tooltip
private const int TOOLTIPP_Y_OFFSET = 24;
private void ListView1_MouseMove(object sender, MouseEventArgs e)
{
ListView lv = sender as ListView;
if (lv != null)
{
ListViewHitTestInfo htInfo = lv.HitTest(e.X, e.Y);
if (htInfo != null)
{
if (htInfo.Item != null && htInfo.SubItem != null)
{
// wenn Subitem in Spalte 2 (Index == 1) gewählt
if (htInfo.Item.SubItems.IndexOf(htInfo.SubItem) == 1)
{
if (_currentsubitem != htInfo.SubItem)
{
toolTip.Show(htInfo.Item.Tag as string, lv, e.X, e.Y + TOOLTIPP_Y_OFFSET);
_currentsubitem = htInfo.SubItem;
}
}
else
{
toolTip.Hide(lv);
_currentsubitem = null;
}
}
else
{
toolTip.Hide(lv);
_currentsubitem = null;
}
}
}
}
private void ListView1_MouseLeave(object sender, EventArgs e)
{
ListView lv = sender as ListView;
if (lv != null)
{
toolTip.Hide(lv);
_currentsubitem = null;
}
}