我试图从类中更改标签的文本,但未成功。
我得到的是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;
    }
}

08-04 00:32