Вы путаете формы и экземпляры форм. Форма - это просто класс. Когда отображается Form1, то, что отображается, является экземпляром класса Form1. Когда отображается форма Form2, отображается экземпляр формы Form2.
Вы пытаетесь использовать
Form1.label1.Text = "Fred";
Но вы можете установить только поле или элемент экземпляра . Вы имеете в виду класс"Form1".
Вам нужны две вещи. Я предполагаю, что Form2 запускается с кнопки на Form1. Добавьте конструктор в Form2, который принимает экземпляр Form1:
private Form1 _starter;
public Form2(Form1 starter) : this()
{
_starter = starter;
}
Затем добавьте в форму Form1 свойство, предоставляющее текст метки: не предоставляйте непосредственно элементы управления - только данная форма должна знать, какие элементы управления на ней:
public string LabelText
{
get {return label1.Text;}
set {label1.Text = value;}
}
Тогда Form2 установит это свойство:
private void button1_Click(object sender, EventArgs e)
{
_starter.LabelText = "Fred";
}