Существует ли альтернатива LinkLabel, удобная для динамического создания? - PullRequest
0 голосов
/ 01 июля 2011

Я пытаюсь динамически создать ссылку из формы Windows на наш веб-сайт, когда выполняются определенные условия (это предупреждающее сообщение с дополнительной информацией в нашем онлайн-руководстве).

В настоящее время я нахожу LinkLabel довольно громоздким для использования в этой ситуации: необходимость устанавливать обработчики LinkClicked на лету для прямой гиперссылки кажется неэффективной.

Существует ли обертка или альтернатива, удовлетворяющая следующим требованиям?

  • Наследуется от System.Windows.Forms.Control (поэтому я могу использовать его в TableLayoutPanel)
  • Имеет достаточно низкую настройку (например, без предварительной проверки перед посещением LinkClicked)
  • Не привязан к конкретному браузеру

Ответы [ 3 ]

2 голосов
/ 01 июля 2011

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

В любом случае, было бы тривиально реализовать себя - создать класс, который наследует от LinkLabel, добавить свойство URL строки (вам может понадобиться атрибут, чтобы сделать это показ на панели свойств дизайнера, если вы хотите установить его таким образом) и предоставить обработчик событий, который открывает браузер с этим URL.

Затем вы можете просто добавить элемент управления в конструктор (или во время выполнения), установить свойство URL, и оно будет работать без установки обработчиков событий.

1 голос
/ 01 июля 2011

Использовали ли вы событие LinkClicked вместо OnClick?Затем вы можете использовать это в обработчике событий:

    (sender as LinkLabel).LinkVisited = true;
    System.Diagnostics.Process.Start("http://example.com");

Он не привязан к конкретному браузеру - открывается в браузере пользователя по умолчанию.Установка низка - просто создайте экземпляр LinkLabel, добавьте к событию LinkClicked (что является одним из двухстрочных методов) событие и добавьте его на страницу.Что громоздкого в этом подходе?

0 голосов
/ 26 июня 2012

В конце концов, я использовал LinkLabel.Links.Add для динамического изменения назначения ссылки ..

...