2012-12-16 58 views
2

我使用相同的代碼在Form2和Form3中創建LinkLabel。 Form2和Form3是獨立的類,因此名稱不會產生干擾。它們都是創建的,但在表單3鏈接打開時,Form2中沒有任何反應。LinkLabel不打開

這是窗體2

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"); 
    } 
} 

他們在不同的班級。 Form 2在Form 3之前打開。 什麼可能是錯的?

編輯:現在,當我添加更多的代碼時,我在Form2中看到createFormEntry是公共的,並且在Form3中它被設置爲私有。 這可能是一個原因嗎?

+0

當在Form3中將link_LinkClicked聲明爲private void時,如何在Form2中訪問它?你有其他的代碼嗎? – Link

+0

嗨,我編輯了代碼,我希望現在更清晰 – cikatomo

+0

只需啓動調試器並查看問題所在。我在你的代碼片段中找不到任何東西。也許重要的位置在別的地方。也許你正在使用foreach(videoFeed中的AtomEntry),並且沒有AtomEntries。 – Link

回答

0

你試圖打開一個鏈接,而不告訴程序如何或打開該鏈接。你應該告訴它在程序中搜索它!

+1

如果它是一個URL,Windows將啓動您的默認瀏覽器。在Form2中一切都好 – Link