c#如何在运行时更新动态生成的标签

时间:2017-03-24 22:03:22

标签: c# winforms

我是C#的新手,我在按下按钮时尝试更新动态生成标签中的值。但它并没有覆盖表格上的标签。

echo "</script>alert("'.$_SESSION['your data'].'");</script>";

2 个答案:

答案 0 :(得分:1)

为什么删除旧的而不是更新它?更新后,结果是一样的。初始化Forms控件有很多内容,请参阅InitializeComponent()。你最好更改你已经拥有的标签的Text属性。

private void button1_Click(object sender, EventArgs e)
    {
        myLabelsDesignName.Text = String.Format("{0}", b);


        b = b + 1;

        Console.WriteLine(b);

    }

答案 1 :(得分:0)

为了做你想做的事,你需要一种方法来引用以前的标签。您可以使用与跟踪b

相同的方法来实现此目的
int b = 1;
Label labelOnForm;
public Form1()
{
    InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
    if (labelOnForm != null)
    {
       this.Controls.Remove(labelOnForm);
       labelOnForm.Dispose();
    }

    Label label = new Label(); // used to print users
    label.Text = String.Format("{0}", b);

    label.Left = 10;
    label.Top =  25;
    this.Controls.Add(label);

    labelOnForm = label;

    b = b + 1;

    Console.WriteLine(b);
}

但是,您只需更新现有标签,而不是每次都创建一个新标签:

int b = 1;
Label labelOnForm;
public Form1()
{
    InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
    if (labelOnForm == null)  // label doesn't exist yet
    {
        Label label = new Label(); // used to print users

        label.Left = 10;
        label.Top =  25;
        this.Controls.Add(label);

        labelOnForm = label;
    }

    labelOnForm.Text = String.Format("{0}", b);

    b = b + 1;

    Console.WriteLine(b);
}