Отображение разных всплывающих подсказок для каждой области ссылок элемента управления .NET LinkLabel

Предположим, я добавляю элемент управления LinkLabel в форму Windows и определяю в нем две разные ссылки, как в этом фрагменте C#:

LinkLabel ll = new LinkLabel();
Controls.Add(ll);
ll.Text = "Click here or here";
ll.Links.Add(6, 4, "http://example.one");
ll.Links.Add(14, 4, "http://example.two");

В итоге я получаю ярлык на форме, который говорит (и выглядит и ведет себя так) «Нажмите здесь или здесь". Однако пользователь не знает, каковы цели для ссылок, поэтому я хотел бы, чтобы всплывающая подсказка показывала соответствующий URL-адрес при наведении мыши на любой из них.

Я создаю длинную, обернутую текстом LinkLabel программно, поэтому просто размещаю четыре элемента управления как "[Label:'Click'] [LinkLabel:'here'] [Label:'or'] [LinkLabel:'here']" на Форма для назначения ToolTipText независимо от разных LinkLabels не является хорошим вариантом.

Каков наилучший способ добиться этого? Или я должен использовать что-то другое, кроме LinkLabel?


person Michael    schedule 10.01.2014    source источник
comment
Я разместил решение в stackoverflow.com/questions/20358602/   -  person Jürgen Tschandl    schedule 20.09.2017


Ответы (1)


К сожалению, я не думаю, что это легко, поскольку, хотя LinkLabel имеет событие LinkClicked, у которого есть аргумент события со ссылкой, по которой щелкнули, нет соответствующего события LinkMouseHover/Enter, поэтому нет способа узнать, над какой ссылкой вы находитесь.

Возможно, единственным решением было бы создать множество LinkLabel рядом друг с другом, а затем использовать MouseHover для каждого LinkLabel, чтобы узнать, какая ссылка также была указана.

person Matthew Lock    schedule 01.07.2016