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

  • 質問

  • 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

     

     

    2008年4月22日 6:20

回答

  • optionというのは<option>タグのことでしょうか? もしそうであればそれは誤りで、<select>に付けた名前を指定してみて下さい。

    2008年4月22日 6:49
    モデレータ
  • >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")

    ----------------------------------------------------------------------------

    2008年4月22日 7:04

すべての返信

  • optionというのは<option>タグのことでしょうか? もしそうであればそれは誤りで、<select>に付けた名前を指定してみて下さい。

    2008年4月22日 6:49
    モデレータ
  • >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")

    ----------------------------------------------------------------------------

    2008年4月22日 7:04