У меня есть приложение winform.
В форме у меня есть контроль веб-браузера, что URI является угловым приложением.
Я хочу, чтобы, когда я нажимал кнопку (на приложении углового в веб-браузере), событие в форме в winformэто повышение.
Как я могу это сделать?
Я видел пример кода, который позволяет вам слушать событие в DOM, и мне нужно что-то такое же, как прослушивание щелчкакнопка:
Класс слушателя:
public class DOMListener
{
public event Action DOMChanged;
private WebBrowser Browser;
public DOMListener(WebBrowser webbrowser)
{
this.Browser = webbrowser;
this.Browser.ObjectForScripting = this;
this.Browser.DocumentCompleted += OnDOMLoaded;
}
private void OnDOMLoaded(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlElement script = this.Browser.Document.CreateElement("script");
script.InnerHtml = "function listenToDOM() { document.addEventListener('DOMSubtreeModified', function(e) { window.external.DOMUpdate() }); }";
this.Browser.Document.GetElementsByTagName("body")[0].AppendChild(script);
this.Browser.Document.InvokeScript("listenToDOM");
}
public void DOMUpdate()
{
if (this.DOMChanged != null) this.DOMChanged.Invoke();
}
}
В форме .cs:
Public void Initialize()
{
try
{
this.Listener = new DOMListener(this.webBrowser1);
this.Listener.DOMChanged += this.OnDOMChanged;
this.webBrowser1.Navigate(new Uri("http://localhost:5050/Api/IESAngularDemo/"));
}
catch(Exception ex)
{
throw;
}
}
void OnDOMChanged()
{
Console.WriteLine(DateTime.Now.ToLongTimeString() + ": DOM changed");
}