Это плохой дизайн. Вы должны удалить статику из состояния.
Что вы пытаетесь сделать, так это установить значение экземпляра из static Property.
Вы можете изменять статические поля/свойства только из статических свойств/методов.
Если вы настаиваете на том, что статус должен быть статическим, вам необходимо создать другое статическое свойство/поле и обновить его через это поле. (ЭТО ОЧЕНЬ ОЧЕНЬ ПЛОХО).
Пример: Предполагая, что статус определяется в классе Form1, и там будет только один Form1 Instance
Class Form1
{
private static Form1 staticInstance = default(Form1);
Form1()
{
staticInstance = this;
}
public static string Status
{
get
{
return status;
}
set
{
status = value;
Refresh();
}
}
private static void Refresh() // Change signature of function
{
if(staticInstance != default(Form1)
staticInstance .lblStatus.Text = Status.ToString();
}
}
Ну да, 'Refresh' не статична, поэтому он должен быть вызван экземпляр объекта. –
вы вызываете нестационарный метод из статического ... так что вы получаете ошибку – Pranav
@JonB: Это не исключение, это ошибка времени компиляции - и довольно четкая ... –