カスタム ユーザー コントロールから HtmlDocument をプロパティとして返すと、この問題が発生します。(埋め込まれた WebBrowser コントロール)
別のスレッドからドキュメントにアクセスするためのエラーの原因。
/// <summary>
/// Error version '
/// </summary>
public HtmlDocument Document
{
get
{
// Throw error 'Specified cast is not valid'
return this.webBrowserMain.Document;
}
}
しかし、エラーが「CrossThread Operation access ...」ではない理由はわかりませんが、次のコードで問題が解決しました
/// <summary>
/// Fixed version
/// </summary>
delegate HtmlDocument DlgGetDocumentFunc();
public HtmlDocument GetDocument()
{
if(InvokeRequired)
{
return (HtmlDocument)this.webBrowserMain.Invoke(new DlgGetDocumentFunc(GetDocument), new object[] { });
}
else
{
return this.webBrowserMain.Document;
}
}