2

私は System.Window.Controls Webbrowser (WPF) を使用していますが、あちこちで異常が発生しています。

通常、Winforms の webbrowser ドキュメントにアクセスして要素をクリックしたい場合は、

       HtmlDocument document = webNav.webBrowser1.Document;
       document.GetElementById("id_of_element").InvokeMember("Click");

ただし、WPF では error がスローされますCannot implicitly convert type 'object' to 'System.Windows.Forms.HtmlDocument'. An explicit conversion exists (are you missing a cast?)

を使用してこれを回避できます

       dynamic document = webNav.webBrowser1.Document;
       document.GetElementById("id_of_element").InvokeMember("Click");

より良い/推奨される方法はありますか、またはこれは動的タイプの許容可能な使用法ですか? (動的型の許容される使用例はありますか?)

4

1 に答える 1

4

エラーが示すように、明示的なキャストがありません:

 HtmlDocument document = (HtmlDocument)webNav.webBrowser1.Document;

ファイルの先頭にあると仮定using System.Windows.Forms;します(上記のコードを短くするため)。

このセリフで知ったのですが、

明示的な変換が存在します (キャストがありませんか?)

この場合、を使用する必要はありませんdynamic

于 2012-10-14T17:23:51.963 に答える