我试图从类中更改标签的文本,但未成功。
我得到的是im使用get{}和set{}更新类中的变量。我知道我需要在set{}中放置或执行一些操作,使它将更新值从类发送回form1类,以便它可以更新标签。
有人能告诉我怎么才能做到这一点吗?或者如果有办法从类中更新标签,那就更好了。
我希望这是有意义的,并提前感谢。
最佳答案
您可能希望考虑使用委托或事件,并让类将事件引发回窗体,这样您的类将不了解窗体。
例子
class SomeClass
{
public delegate void UpdateLabel(string value);
public event UpdateLabel OnLabelUpdate;
public void Process()
{
if (OnLabelUpdate != null)
{
OnLabelUpdate("hello");
}
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void UpdateLabelButton_Click(object sender, EventArgs e)
{
SomeClass updater = new SomeClass();
updater.OnLabelUpdate += new SomeClass.UpdateLabel(updater_OnLabelUpdate);
updater.Process();
}
void updater_OnLabelUpdate(string value)
{
this.LabelToUpdateLabel.Text = value;
}
}