2017-06-22 2 views
-1

私はいくつかのコードを使用してリンクラベルのリストを生成しましたが、コードが実行されるまでLinkLabelが存在しない場合、LinkLabelをクリックすると何かをする方法がわかりません。リンクは、私はそれが私はそれがMessageBox.Showのような何かをしたい作品を知っていると起動するので、ラベルとして がここに私のコード生成されたリンクラベルを管理するにはどうすればよいですか?

 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++; 
     } 

です...それはコードで作成したテキストファイルからリストを作成します();リンクラベルの内容が表示されます。これはどうすればいいですか?誰か私に例を教えてもらえますか?コメントでアレハンドロによって示唆されるように

+0

は 'Click'イベントにイベントハンドラを接続します。 – Alejandro

+0

私のコードを実行するまでリンクラベルは存在しないので、次に行く場所が少し失われています。私のフォームは最初は空白です。 –

答えて

1

、ワイヤーまであなたにLinkLabelのLinkClicked()イベント:

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); 
    } 
関連する問題