My recommendation is to not access a label on your form from a class, instead use an event that when invoke and listened to from the form makes a decision to alter the label e.g. change the label foreground color based on a logical decision.
Using an event as per above cost virtually nothing in regards to memory.
In the following project, I show how to use an event to update the foreground color of a label base on if a int value is odd or even.
Form code
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Operations.ColorsChanged += Operations_ColorsChanged;
}
private void Operations_ColorsChanged(Color color)
{
label1.ForeColor = color;
}
private void UpdateValueButton_Click(object sender, EventArgs e)
{
Singleton.Instance.Value += 1;
Operations.DoSomeWork();
label2.Text = $@"Singleton value is {Singleton.Instance.Value}";
}
}
See the rest of code in the following project.
In closing, avoid accessing the label from another class by setting Modifiers property from private to public or passing the label to a class and modify a property.