Я хочу отобразить всплывающую подсказку, когда указатель мыши находится над ссылкой в моем пользовательском элементе управления rich edit. Рассмотрим следующий текст:
Мы все спим ночью.
В моем случае слово sleep является ссылкой.
Когда пользователь перемещает мышь под ссылкой, в данном случае «сон», я хочу отобразить всплывающую подсказку для ссылки.
Мне пришло в голову следующее, но они не работают
1) Trapping OnMouseHover
if(this.Cursor == Cursors.Hand)
tooltip.Show(textbox,"My tooltip");
else
tooltip.Hide(textbox);
Но это не сработает.
UPDATE
Упомянутые ссылки являются , а не URL-адресами, т.е. это пользовательские ссылки, поэтому Regex здесь не сильно поможет, это может быть любой текст. Пользователь может создать ссылку.
Хотя я не пробовал GetPosition
метод, я не думаю, что он будет настолько элегантным с точки зрения дизайна и обслуживания.
Позвольте мне сказать, что у меня есть следующая строка, в моей коробке richedit
Мы спим ночью. Но летучие мыши остаются бодрствующими . Тараканы становятся активными ночью.
В приведенном выше предложении мне нужны три разные всплывающие подсказки, когда на них наводит курсор мыши.
sleep -> Human beings
awake -> Nightwatchman here
active -> My day begins
Я поймал в ловушку OnMouseMove
следующим образом:
Работа с окном сообщений
OnMouseMove( )
{
// check to see if the cursor is over a link
// though this is not the correct approach, I am worried why does not a tooltip show up
if(this.Cursor.current == Cursors.hand )
{
Messagebox.show("you are under a link");
}
}
Не работает - с всплывающей подсказкой - подсказка не отображается
OnMouseMove( MouseventArgs e )
{
if(cursor.current == cursors.hand )
{
tooltip.show(richeditbox,e.x,e.y,1000);
}
}