1

その場でコンポーネントを作成しようとしているので、これを作成する方法は知っていますが、その場でこのコンポーネントにアクセスするにはどうすればよいですか?

例えば:

    public Form1
    {
        Label label1 = new Label();
        label1.AutoSize = true;
        label1.Location = new System.Drawing.Point(e.X, e.Y);
        label1.Name = string.Format("label{0}", labelsCount.ToString());
        label1.Size = new System.Drawing.Size(35, 13);
        label1.TabIndex = 2;
        label1.Text = string.Format("Label -> {0}", labelsCount.ToString());
        label1.Click += new System.EventHandler(this.label1_Click);
        this.Controls.Add(label1);
        label1.BringToFront();
        label1.Show();
        labelsCount++;
    }

ラベルをクリックすると、ラベルの情報 (位置、テキスト、名前など) を取得したい

どうすればこれを行うことができますか?または、これを行う最善の方法は何ですか?

そして、フォーム内のパネルの位置に基づいてコンポーネントにアクセスするには、どうすればよいですか?

4

1 に答える 1

2

イベントの送信者はラベルです。次のように送信者オブジェクトをキャストするだけLabelです。

void label1_Click(object sender, EventArgs e)
{
    Label label = (Label)sender;
    // use
    // label.Name
    // label.Location
}
于 2013-02-01T15:41:07.553 に答える