2010-04-16 2 views
1

Я хочу, чтобы она перемещалась, когда мышь перемещается и исчезает, когда указатель не находится над меткой.Как заставить всплывающую подсказку перемещаться с помощью мыши (winforms)

Это не работает:

private void lblRevisionQuestion_MouseMove(object sender, MouseEventArgs e) 
{ 
    toolTip1.Show("test", this, PointToClient(MousePosition), Int32.MaxValue); 
} 

private void lblRevisionQuestion_MouseLeave(object sender, EventArgs e) 
{ 
    toolTip1.Hide(this); 
} 

Как только появляется подсказка, он крадет внимание от формы, вызывая MouseLeave. Затем всплывающая подсказка скрывается, а указатель снова находится над меткой, вызывая MouseMove. Это приводит к прерывистой всплывающей подсказке.

Есть ли способ сделать это?

+0

С данным кодом окно всплывающей подсказки отображается точно в позиции мыши. Это вызывает мерцание. Сдвиньте это немного. –

ответ

0
toolTip1.Show(_toolTipText, this, new Point(lblRevisionQuestion.Left + e.X + 1, lblRevisionQuestion.Top + e.Y + 1), int.MaxValue); 

Как ни странно, когда я попытался отобразить его на каком-то произвольном координатном ушко, у него была та же проблема, что и выше. Я не знаю, почему это работает, а что нет.

0

Поскольку вы работаете со списком, я хотел бы обратить ваше внимание на то, что элементы списка имеют некоторые специальные свойства подсказки, такие как ToolTipText. Это облегчит отображение данных при наведении курсора на объект, как показано ниже.

toolTip1.ToolTipTitle = string.Format("Item: {0}",e.Item.Text); 
toolTip1.Show(e.Item.ToolTipText,listView1); 
toolTip1.ShowAlways = true; 
Смежные вопросы