这是我的程序。
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
static int count = 0;
public Form1(){InitializeComponent();}
private void button1_Click(object sender, EventArgs e)
{
count += 1;
label1.Text = Convert.ToString(count);
}
private void button2_Click(object sender, EventArgs e)
{
count -= 1;
label1.Text = Convert.ToString(count);
}
}
}
现在...我有一个程序,每当我们按下两个按钮之一并将值保存到全局变量 count 中,然后将其显示在 label1 中时,该程序将数字加 1 或减 1。
假设我想更改另一个标签 (label2) 的值,其中我还想在每次 label1 更改时显示计数变量值的内容。
所以有一种方法,使用按钮中的事件,可以这样完成:
private void button1_Click(object sender, EventArgs e)
{
count += 1;
label1.Text = Convert.ToString(count);
label2.Text = Convert.ToString(count);
}
private void button2_Click(object sender, EventArgs e)
{
count -= 1;
label1.Text = Convert.ToString(count);
label2.Text = Convert.ToString(count);
}
问题来了...
但是假设我想更新 label2 的值,而不是从按钮事件中更新,而是以某种方式更新它,以便它会在 count 变量发生变化时自动更新值。
请帮忙。
最佳答案
在这种情况下使用属性
private int count
private int Count
{
get { return count; }
set
{
count = value;
RefreshLabels();
}
}
private void RefreshLabels()
{
label1.Text = Convert.ToString(count);
label2.Text = Convert.ToString(count);
}
当你想改变计数时,只需使用属性即可
Count += 1;
Count -= 1;
关于c# - 更改时自动从全局变量更新标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5754003/