如何在Windows窗体中更新标签的值

时间:2014-05-06 00:48:00

标签: c# windows-forms-designer

WindowsForms 的程序中,我有两种形式:父和子。在表单中,我更改了变量的值,该值在独立类中声明。

当我关闭表单时,我需要在表单的标签中显示变量的新值,但我只能看到旧的价值。如何更新?

这是我如何在表单的构造函数中显示它:

label6.Text = indicators.Money + "$";

EDIT1:

无法理解,为什么它不会更新。父表单中的代码:

private void button3_Click(object sender, EventArgs e)
        {
            Computer computer = new Computer();
            computer.ShowDialog();
            label6.Refresh();
        }

EDIT2

这就是我所做的。我还在尝试你的建议:

private void button3_Click(object sender, EventArgs e)
        {
            Computer computer = new Computer();
            Code.Indicators indicators = new Code.Indicators();
            if (computer.ShowDialog() == DialogResult.OK)
                label6.Text = indicators.Money.ToString();
            label6.Refresh();
        }

其实我需要的是:

enter image description here

2 个答案:

答案 0 :(得分:1)

尝试这样的Control.Refresh Method

label6.Refresh();

每次更新编辑

这里真正的问题是你的方法。这是从子表单返回值的一种非常简单的方法,这是你想要的。

在您的子表单中添加一个属性,您可以使用该属性访问父表单中设置的Money金额。

public partial class YourChildForm : Form
{   
    public string YourMoney { get; private set; } 
    // The rest of your form code
}

样本用法:

var childForm = new YourChildForm();
childForm.ShowDialog();
label6.Text = childForm.YourMoney;

答案 1 :(得分:1)

由于您声明您正在使用ShowDialog,因此您可以在从ShowDialog方法返回后立即从Child表单中读取值。正如我在评论中所说,我只需创建一个Public属性来设置和获取变量的值。

尝试这样的事情:

child.CurrentIndicator = indicators;
    if(child.ShowDialog == DialogResult.OK)
        indicators = child.CurrentIndicator;

label6.Text = indicators.Money;

在你的孩子形式中创建这样的属性;

public Indicator CurrentIndicator {get; set;} //You can use automatic properties or have a backing variable