Как убедиться, что событие из другого потока использует текущий экземпляр моей формы? - PullRequest
0 голосов
/ 21 мая 2019

У меня есть форма окна, где я подписываюсь на несколько событий.

FormClosing += save;
EncompassApplication.CurrentLoan.BeforeCommit += save;

Это форма, которая открывается в новой теме.

void save(object sender, EventArgs e)
{
    updateItems();
}

Мой метод сохранения в основномпросто сохраняет текущее состояние моей формы в базе данных.

Моя форма отлично сохраняет данные при FormClosing, но EncompassApplication.CurrentLoan.BeforeCommit происходит из приложения, запущенного в другом потоке, и когда это событие вызывается, оно не работаетправильно.Это почти как если бы мой метод сохранения для этого события получал пустой экземпляр моей формы и перезаписывал любую информацию, заполненную в форме.

Как мне написать свой код, чтобы EncompassApplication.CurrentLoan.BeforeCommit получалтекущая версия моей формы для сохранения в базе данных?

Конструктор форм

public CheckList(bool canEdit)
{
    this.canEdit = canEdit;
    FormClosing += save;
    FormClosing += updateStatus;
    EncompassApplication.CurrentLoan.BeforeCommit += save;
    password.MakeReadOnly();
    SqlCredential sqlCred = new SqlCredential(username, password);
    SqlConnection connection = new SqlConnection(connectionString, sqlCred);
    connection.Open();
    addHeaders(connection);
    populateItems(connection);
    connection.Close();
    drawFooter();
    isOpen = true;
    InitializeComponent();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...