5

私の目標は、2番目のオプションを選択する必要があります。

次の方法を試しましたが、選択した値を設定できません。エラーは表示されず、選択は行われません。私自身HTMLに精通しているので、「selected」と「selected = "selected」'が機能することは知っていますが、C#コードで機能しない理由はわかりません。何が間違っている可能性がありますか?

webBrowser1.Document.GetElementById("field_gender1").
       Children[1].SetAttribute("selected", "selected");

HTMLは

<select name="gender1" id="field_gender1" class="select">
        <option selected="selected" value="1">val1</option>
        <option value="2">val2</option>
</select>
4

2 に答える 2

7

WebBrowser_DocumentComplete(...)からこれを実行します

var htmlDocument = webBrowser1.Document as IHTMLDocument2;
  if (htmlDocument != null)
  {
     var dropdown = ((IHTMLElement)htmlDocument.all.item("field_gender1"));
     var dropdownItems = (IHTMLElementCollection)dropdown.children;

     foreach(IHTMLElement option in dropdownItems)
     {
        var value = option.getAttribute("value").ToString();
        if(value.Equals("2"))
           option.setAttribute("selected", "selected");
     }

  }
于 2012-12-19T16:28:07.467 に答える
3

コードが適切な場所にある場合、コードは機能しているはずです。たとえば、button1_Clickイベント、webBrowser1_DocumentCompletedイベントなどです。

于 2012-09-04T07:02:43.887 に答える