将UI组件动态添加到Winform中

时间:2013-02-01 15:39:11

标签: c# winforms

我正在尝试动态创建组件,因此,我知道如何制作组件,但是,我如何动态访问此组件?

例如:

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

当我点击标签时,我想获取标签的信息(如位置,文字和名称)

我怎么能这样做?或者,最好的方法是什么?

并且,要根据面板的位置,在表单内部访问组件,我该怎么做?

1 个答案:

答案 0 :(得分:2)

活动发件人是您的标签。只需将发件人对象转换为Label类型:

void label1_Click(object sender, EventArgs e)
{
    Label label = (Label)sender;
    // use
    // label.Name
    // label.Location
}