Я запрограммировал UserControl, который расширяет ПО ERP и получает от него содержимое. Мне нужно использовать делегаты / события (здесь MethodInvokers) для ERP, чтобы знать, когда я нажимал на какой-то элемент управления. Поэтому в основном на главной странице я нажимаю btn_OpenBrowserForm , чтобы открыть новую форму (с браузером в ней), и кнопка вызывает OpenBrowserFormDelegate , которая в ERP вызывает OpenBrowserForm (строка URL) функция.
MethodInvoker OpenBrowserFormDelegate работает отлично, но CloseBrowserFormDelegate не срабатывает в ERP, когда я закрываю webBrowserForm.
Я предполагаю, что OpenBrowserFormDelegate почему-то все еще активен, когда я пытаюсь закрыть BrowserForm и блокирует выполнение CloseBrowserFormDelegate , но я новичок и не могу этого сделать Работа. Если вам нужна дополнительная информация, просто скажите мне. Я был бы очень рад, если бы кто-нибудь мог помочь.
public event MethodInvoker OpenBrowserFormDelegate = delegate { };
public event MethodInvoker CloseBrowserFormDelegate = delegate { };
private void btn_OpenBrowserForm_Click(object sender, RoutedEventArgs e)
{
OpenBrowserFormDelegate();
//OpenBrowserFormDelegate.Invoke();
//OpenBrowserFormDelegate.BeginInvoke(null,null);
}
public void OpenBrowserForm(string URL)
{
WebBrowserForm webBrowserForm = new WebBrowserForm(URL);
webBrowserForm.FormClosed += (s, e) =>
{
CloseBrowserFormDelegate();
};
webBrowserForm.Show();
}
Псевдокод в ERP:
TRIGGER OpenBrowserFormDelegate
{
OpenBrowserForm("google.com");
}
TRIGGER CloseBrowserFormDelegate
{
Message("Close trigger completed");
}