문제

내 winforms 응용 프로그램에는 a가있는 탭이 있습니다 System.Windows.Forms.WebBrowser 제어. 웹 브라우저를 설정하는 몇 가지 컨트롤이 있습니다 .Url 속성, 그리고 양식이 다시 인쇄 할 때 Webbrowser 's라고 부릅니다. .Refresh(WebBrowserRefreshOption.Completely) 방법.

그러나 때때로 양식이 다시 칠되고 웹 브라우저 컨텐츠가 변경되지 않습니다. 나는 .Refresh( ), 그리고 .Url 이전 URL입니다. 무슨 일이야?

에 따르면 MSDN:

이 속성의 값을 설정 한 다음 즉시 다시 검색하면 웹 브라우저 컨트롤이 새 문서를로드 할 시간이없는 경우 검색된 값이 값 세트와 다를 수 있습니다.

그다지 특별하지 않습니까? 왜 그렇지 않습니다 .Refresh( ) 컨트롤이 다시 그리기 전에 "새 문서를로드 할 시간"이있을 때까지 기다리십니까? 이런 일이 일어나도록 강요 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

당신이 매우 특별한 일을하지 않는 한, WB가 스스로 다시 칠하도록 강요하는 것은 의미가 없습니다. 그것은 자체 통제이며 자체 손잡이를 가지고 있기 때문에 필요할 때마다 스스로를 다시 칠할 수 있습니다. ReadyState와 완전히 동기화되지 않은 순간에 다시 Refaint를 강요하기 때문에 "오래된"URL을 얻는 것이 예상됩니다.

다른 팁

"DocumentCompleted"이벤트가 발사 될 때 실행되는 코드에 이벤트 핸들러를 추가해보십시오. 그런 다음 새로 고침 코드를 추가하십시오. MSDN에는 코드의 몇 가지 예가 있습니다. 이런 식으로 그렇게하면 페이지가로드되었는지 추측 할 때 시간을 잃지 않으며 준비 되 자마자 처리를 계속할 수 있습니다.

http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documentcompleted.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top