c# - Detect scroll on a WebBrowser control -
i have following code that, weirdly, works couple of seconds , stops working (my event handler method stops being called):
public partial class form1 : form { private void form1_load(object sender, eventargs e) { webbrowser1.documentcompleted += new webbrowserdocumentcompletedeventhandler(webbrowser1_documentcompleted); webbrowser1.navigate("google.com"); } private void webbrowser1_documentcompleted(object sender, webbrowserdocumentcompletedeventargs e) { if (!webbrowser1.isbusy && webbrowser1.url == e.url && webbrowser1.readystate == webbrowserreadystate.complete) { htmlwindowevents_event windowevents = webbrowser1.document.window.domwindow htmlwindowevents_event; windowevents.onscroll += new htmlwindowevents_onscrolleventhandler(windowevents_onscroll); } } private void windowevents_onscroll() { htmldocument htmldoc = webbrowser1.document; int scrolltop = htmldoc.getelementsbytagname("html")[0].scrolltop; string text = scrolltop.tostring(); } }
ok found solution:
protected override void ondocumentcompleted(webbrowserdocumentcompletedeventargs e) { follow(); if (!isbusy && url == e.url && readystate == webbrowserreadystate.complete) { document.window.attacheventhandler("onscroll", docscroll); } } if attached way works ok (so far...). don't need use mshtml.
Comments
Post a Comment