トップ回答者
VB2008 でフォーム内のブラウザに表示されているセレクトボックスから任意の項目を選択する方法について

質問
-
VB2008 を使ってフォーム内に組み込んだWebBrowserコントロールに表示されているページのブラウザ上のセレクトボックス(<select><option>~</select>)から任意の項目をVB側からコントロールして選択するには、どのように記述すればよいでしょうか。
ブラウザ上のセレクトボックスの例:
----------------------------------------------------------------------------
<select name="example">
<option value="sample1">サンプル1</option><option value="sample2">サンプル2</option>
<option value="sample3">サンプル3</option>
</select>----------------------------------------------------------------------------
このようなソースであった場合、"サンプル2" を選択したいとすると、
WebBrowser1.Document.Forms(0).GetElementsByTagName("option").Item(1).SetAttribute("selectedindex","sample2")
としても選択できませんでした。
SetAttributeをInnerHtmlにすると"サンプル2"が取得できるので項目の指定までは間違っていないのですが、セレクトボックスを選択するという処理のコードが分かりません。
どのように指定すればよいでしょうか。ご教授お願いいたします。
また、以下も参考にしましたが、うまく選択できませんでした。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1732304&SiteID=7&pageid=0
回答
-
>trapemiya さん
早速のお返事、ありがとうございました。
ご指摘の通り、selectタグに付けられた名前を利用することで自己解決しました。
以下のコードで意図するセレクトボックスの項目が選択できました。
ブラウザ上のセレクトボックスを表すのHTMLソース例:
----------------------------------------------------------------------------
<select name="example">
<option value="sample1">サンプル1</option><option value="sample2">サンプル2</option>
<option value="sample3">サンプル3</option>
</select>----------------------------------------------------------------------------
VBから"サンプル2"を選択するコード:
----------------------------------------------------------------------------
Dim sel As Object = WebBrowser1.Document.Forms(0).DomElement("example")
sel.selectindex = 2
sel.fireEvent("onchange")
----------------------------------------------------------------------------
すべての返信
-
>trapemiya さん
早速のお返事、ありがとうございました。
ご指摘の通り、selectタグに付けられた名前を利用することで自己解決しました。
以下のコードで意図するセレクトボックスの項目が選択できました。
ブラウザ上のセレクトボックスを表すのHTMLソース例:
----------------------------------------------------------------------------
<select name="example">
<option value="sample1">サンプル1</option><option value="sample2">サンプル2</option>
<option value="sample3">サンプル3</option>
</select>----------------------------------------------------------------------------
VBから"サンプル2"を選択するコード:
----------------------------------------------------------------------------
Dim sel As Object = WebBrowser1.Document.Forms(0).DomElement("example")
sel.selectindex = 2
sel.fireEvent("onchange")
----------------------------------------------------------------------------