1

バックグラウンド

データベースからデータを取得するループを使用して作成された 8 つのリンクラベルを作成しました。各レコードは linklabel を埋めます。

どのリンクラベルがクリックされたかをどのように区別できますか?

コード

 for (int i = 0; i <= rowCount - 1; i++)
                {

                    LinkLabel Linklabel = new LinkLabel();
                    Linklabel.Text = ds.Tables[0].Rows[i]["code"].ToString();
                    Linklabel.Height = 15;
                    Linklabel.Width = 50;
                    Linklabel.AutoSize = true; 
                    Linklabel.Location = new Point(10, (i + 1) * 30);
                    tabControl1.TabPages[0].Controls.Add(Linklabel);
                    // Add an event handler to do something when the links are clicked. 
                    Linklabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
                }

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            tabControl1.SelectedTab = tabPage2;
        }

描かれた 8 つのリンクラベルのいずれかをクリックすると、同じことが起こります。

私は何をしたいですか?

リンクラベルのいずれかをクリックすると、クリックしたリンクラベルの内容に label.text を変更したいと思います。

例えば

最初linklabel.text=("one")にクリックした場合は 1 つにlabel1.textなります。

2 番目linkedlabel.text=("two")をクリックするlabel1.textと 2 になります。

4

1 に答える 1

3

sender実際LinkLabelにクリックされていることを指すコールバックで引数を使用できます。

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    label1.text = ((LinkLabel)sender).Text;
}
于 2015-01-25T21:29:05.510 に答える