2017-06-22 51 views
-1

我已經使用一些代碼生成了鏈接標籤的列表,但是我不知道如何在點擊LinkLabel時如果它們不存在,直到我的代碼運行,如何使它做某些事情。 這裏是我的代碼如何管理我生成的鏈接標籤?

 var n = File.ReadLines(HorseFile).Count(); 

     var HC = 0; 

     for (int i = 0; i < n; i++) 
     { 

      string HorseName = File.ReadLines(HorseFile).ElementAtOrDefault(HC); 
      LinkLabel HorseLabel = new LinkLabel(); 
      HorseLabel.Left = 35; 
      HorseLabel.Top = (i + 4) * 21; 
      HorseLabel.Text = String.Format(HorseName, HC); 
      this.Controls.Add(HorseLabel); 

      HC++; 
     } 

...它產生在代碼前面創建一個文本文件中的列表,鏈接標籤,這樣下手,所以我知道它的作品,我希望它像做MessageBox.Show ();顯示鏈接標籤的內容。我該怎麼做呢?有人可以舉個例子嗎?

+0

附加一個事件處理程序到'Click'事件。 – Alejandro

+0

鏈接標籤不存在,直到我運行我的代碼,所以我有點失去了下一步要去的地方,我的表單在開始時是空白的。 –

回答

1

正如意見提出由亞歷杭德羅,線了LinkClicked()事件您的LinkLabel的:

private void button1_Click(object sender, EventArgs e) 
    { 
     string HorseFile = @"C:\Users\mikes\Documents\SomeFile.txt"; 

     int count = 0; 
     foreach(string HorseName in File.ReadLines(HorseFile)) 
     { 
      LinkLabel HorseLabel = new LinkLabel(); 
      HorseLabel.Left = 35; 
      HorseLabel.Top = (count + 4) * 21; 
      HorseLabel.Text = HorseName; 

      HorseLabel.LinkClicked += HorseLabel_LinkClicked; // wire up the event 

      this.Controls.Add(HorseLabel); 
      count++; 
     } 
    } 

    private void HorseLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
    { 
     LinkLabel Horse = (LinkLabel)sender; 
     MessageBox.Show(Horse.Text); 
    }