Хобрук: Ваш путь к мастерству в программировании

LinkLabel не открывается

Я создаю LinkLabel в Form2 и Form3 с одним и тем же кодом. Form2 и Form3 — это отдельные классы, поэтому имена не мешают. Они оба создаются, но в Форме 3 ссылки открываются, в Форме2 ничего не происходит.

Это код для Form2

public partial class Form2 : Form
{
  public void createFormEntry(List<string> videoId)
  {
    LinkLabel link = new LinkLabel();
    link.Name = "link";
    link.AutoSize = true;
    link.Location = new Point(76, 8);
    link.Text = "www.example.com";
    link.LinkClicked += new LinkLabelLinkClickedEventHandler(link_LinkClicked);
    this.Controls.Add(link);
  }   

    private void link_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        System.Diagnostics.Process.Start("http://www.example.com");
    }
}

И это для Form3

public partial class Form3 : Form
{
  private void createFormEntry(Feed<Video> videoFeed)
  {
    LinkLabel link = new LinkLabel();
    link.Name = "link";
    link.AutoSize = true;
    link.Location = new Point(76, 8);
    link.Text = "www.example.com";
    link.LinkClicked += new LinkLabelLinkClickedEventHandler(link_LinkClicked);
    this.Controls.Add(link);
  }

    private void link_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        System.Diagnostics.Process.Start("http://www.example.com");
    }
}

Они в разных классах. Form2 открывается перед Form3. Что может быть не так?

РЕДАКТИРОВАТЬ: теперь, когда я добавил больше кода, я вижу, что в Form2 createFormEntry является общедоступным, а в Form3 он установлен как частный. Может ли это быть причиной?


  • Когда link_LinkClicked объявлен в Form3 как private void, как вы можете получить к нему доступ в Form2? У вас есть какой-то другой код? 17.12.2012
  • Привет, я отредактировал код, надеюсь, теперь он более понятен. 17.12.2012
  • Просто запустите отладчик и посмотрите, в чем проблема. Я ничего не могу найти в вашем фрагменте кода. Может быть, важное место находится где-то в другом месте. Возможно, вы используете foreach (AtomEntry в видеоканале), а AtomEntries нет. 17.12.2012

Ответы:


1

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

16.12.2012
  • Если это URL-адрес, Windows запускает браузер по умолчанию. А в Form2 все окей 17.12.2012
  • Новые материалы

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..