OpenForm MethodInvoker возможно блокирует CloseForm MethodInvoker - PullRequest
0 голосов
/ 30 августа 2018

Я запрограммировал 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");
}
...