Задать вопрос
@tex620

Вызов функции Windows Forms вне класса Формы?

Существует необходимость отображения текста на форме из потока программы, находящимся в другом класса, но насколько я знаю функции формы доступны только из класса формы, как это обойти, подскажите пожалуйста.
  • Вопрос задан
  • 880 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
Griboks
@Griboks Куратор тега C#
Invoke
Ответ написан
Комментировать
petermzg
@petermzg
Самый лучший программист
Это ведь ваш класс наследник от Form, в нем вы можете написать любые свои методы и задать их как public.
Остается только передать в интересующий вас класс указатель на инстанс класса формы.
Ответ написан
Комментировать
@cicatrix
было бы большой ошибкой думать
Вот здесь ваша проблема подробно описана.
Вкратце: для вызова метода формы из другого потока, необходимо вызывать её через механизм Invoke. Вот пример оттуда:
public static void InvokeIfRequired(this ISynchronizeInvoke obj,
                                         MethodInvoker action)
{
    if (obj.InvokeRequired) {
        var args = new object[0];
        obj.Invoke(action, args);
    } else {
        action();
    }
}

где action() - ваш метод
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы