Я всегда устанавливаю модификаторы в моей форме на private , мне не нравятся внутренние и публичные.
До сих пор я вызывал так:
public string Addtext
{
if(InvokeRequired)
{
Invoke((MethodInvoker)delegate
{
textbox.text = value;
});
}
else
textbox.text = value;
}
Но добавление такого свойства для каждого члена моей формы просто не является объектно-ориентированным.
Я хочу создать функцию, которая будет вызывать параметр (действие). Я старался изо всех сил, но мне это не удалось - для этого необходимо, чтобы члены формы были public или internal : (
public void PerformActionOnForm(Action<FormMain> action)
{
var form = Form.ActiveForm as FormMain;
object s = action.Clone();
if (form != null)
{
form.PerformAction(action);
}
}
public void PerformAction(Action<FormMain> action)
{
if (InvokeRequired)
Invoke(action, this);
else
action(this);
}
две проблемы в моем коде:
Требуется изменить свойство, которое я хочу изменить! = Private: (
Не работает, если форма не в фокусе.