2017-06-22 21 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); 
    }